2017-02-02 8 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되고 결코를 ..... 당신의 코드가 Roll_Click 실행되지 않고있는 상태입니다

답변

0

을 알려 주시기 바랍니다. 다음에 ScoreOnes이 표시되도록 이벤트 수신기를 연결합니다. Roll_Click이 호출됩니다.

unclickable에 관해서는, 당신은 무능한 것을 의미합니까? 아니면 아무것도하지 않습니까? 당신이에서 클릭 할 때 그냥 아무것도하지하려면

, 당신은 다음과 같이 쓸 수 있습니다 : 폼 부하

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

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

고마워요! 나는 이것을 염두에 두었다! 나는 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; 
} 

또는 Jim VanPetten이 다른 대답에서 제안한 사용 안 함 방법을 사용하십시오.