繁体   English   中英

如何编写this.label.Click的代码来触发两个事件?

[英]How can I write the code for a this.label.Click to trigger two events?

这是我的代码

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

    }

ScoreOnes是一个标签,Roll是一个标签。 我想在同一时间单击ScoreOnes时触发Roll_Click,并使ScoreOnes无法点击。 如果我按照我编写代码的方式进行,我必须单击两次才能使ScoreOnes无法点击。 如果我这样做:

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

    }

ScoreOnes永远不会变得无法点击.....请指教

您的代码未触发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;
}
 private void ScoreOnes_Click(object sender, EventArgs e)
{
    Roll_Click(); //this fires the Roll_Click method
    this.ScoreOnes.Enabled = False; // this makes ScoreOnes unclickable

}

在表单加载中连接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在其他答案中建议的禁用方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM