2017-02-02 1 views
1

Вот мой кодКак написать код для this.label.Click запускать два события?

private void ScoreOnes_Click(object sender, EventArgs e) 
    { 
     this.ScoreOnes.Click += this.Roll_Click; 
     this.ScoreOnes.Click -= null; 

    } 

ScoreOnes это метка, и крен этикетки. Я хочу вызвать Roll_Click и сделать ScoreOnes незаменимым, как при щелчке ScoreOnes в ОДНОМ ВРЕМЕНИ. Если я сделаю так, как написал код, мне нужно дважды щелкнуть, чтобы сделать ScoreOnes незаметным. Если бы я сделать это таким образом:

private void ScoreOnes_Click(object sender, EventArgs e) 
    { 
     this.ScoreOnes.Click -= null; 
     this.ScoreOnes.Click += this.Roll_Click; 

    } 

ScoreOnes никогда не становится unclickable ..... Пожалуйста посоветуйте

ответ

0

Ваш код не вызывает Roll_Click. Он подключает прослушиватель событий так, что в следующий раз вызываетсяScoreOnes, будет вызываться Roll_Click.

Что касается незаметных, вы имеете в виду инвалидов? Или это просто ничего не делает?

Если вы хотите, чтобы просто ничего не делать, когда он нажал, вы можете написать что-то вроде этого:

bool scoreOnesDisabled; 
private void ScoreOnes_Click(object sender, EventArgs e) 
{ 
    if (scoreOnesDisabled) 
     return; 

    this.Roll_Click(sender, e); 
    scoreOnesDisabled = true; 
} 
+0

Thankyou! Я тоже это имел в виду! Я просто хотел узнать, есть ли способ в C# для одновременного вызова нескольких событий. Еще раз спасибо! –

+0

@HaroonIftikhar да, вы можете. В конструкторе формы после вызова InitializeComponent() или в form_load добавьте столько обработчиков, сколько захотите. this.ScoreOnes.Click + = this.Roll_Click; this.ScoreOnes.Click + = this.Roll2_Click; this.ScoreOnes.Click + = this.Roll3_Click; – tcwicks

0
private void ScoreOnes_Click(object sender, EventArgs e) 
{ 
    Roll_Click(); //this fires the Roll_Click method 
    this.ScoreOnes.Enabled = False; // this makes ScoreOnes unclickable 

} 
+0

Ум, на самом деле не может вызвать Roll_Click() таким образом, должен быть этим. пример. Но да, включенная часть делает то же самое! Спасибо! –

0

телеграфировать обработчик события Roll_Click в виде нагрузки

void frmQmsQuote_Edit_FormClosed(object sender, FormClosedEventArgs e) 
{ 
    this.ScoreOnes.Click += this.Roll_Click; 
} 

В ScoreOnes_Click обработчик события отсоединяется, так что он снова не будет стрелять

private void ScoreOnes_Click(object sender, EventArgs e) 
{ 
    this.ScoreOnes.Click -= ScoreOnes_Click; 
} 

Или используйте метод отключения, который Джим ВанПеттен предложил в другом ответе.

Смежные вопросы