Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何为this.label.Click编写代码以触发两个事件?_C#_Events_Event Handling_Mouseclick Event - Fatal编程技术网

C# 如何为this.label.Click编写代码以触发两个事件?

C# 如何为this.label.Click编写代码以触发两个事件?,c#,events,event-handling,mouseclick-event,C#,Events,Event Handling,Mouseclick Event,这是我的密码 private void ScoreOnes_Click(object sender, EventArgs e) { this.ScoreOnes.Click += this.Roll_Click; this.ScoreOnes.Click -= null; } ScoreOne是一个标签,Roll是一个标签。我想触发Roll_点击,使ScoreOne不可点击,同时点击ScoreOne。如果我按照我编写代码的方式来做,我必须单击两

这是我的密码

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

    }
ScoreOne是一个标签,Roll是一个标签。我想触发Roll_点击,使ScoreOne不可点击,同时点击ScoreOne。如果我按照我编写代码的方式来做,我必须单击两次以使ScoreOne不可读取。如果我这样做:

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

    }

得分者永远不会变得不可接近。。。。。请告知

您的代码没有触发
Roll\u单击
。它正在连接事件侦听器,以便下次单击
scoreone
时,将调用
Roll\u Click

至于不可攀爬,你是指残疾吗?还是什么都不做

如果你想让它在点击时什么都不做,你可以这样写:

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

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

您的代码未触发滚动\u单击。它正在连接事件侦听器,以便下次单击
scoreone
时,将调用
Roll\u Click

至于不可攀爬,你是指残疾吗?还是什么都不做

如果你想让它在点击时什么都不做,你可以这样写:

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

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

在form load中连接Roll_Click事件处理程序

void frmQmsQuote_Edit_FormClosed(object sender, FormClosedEventArgs e)
{
    this.ScoreOnes.Click += this.Roll_Click;
}
在ScoreOne中,单击事件处理程序detach self,使其不会再次触发

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

或者使用Jim VanPetten在另一个答案中建议的禁用方法。

连接卷\u单击表单加载中的事件处理程序

void frmQmsQuote_Edit_FormClosed(object sender, FormClosedEventArgs e)
{
    this.ScoreOnes.Click += this.Roll_Click;
}
在ScoreOne中,单击事件处理程序detach self,使其不会再次触发

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

或者使用Jim VanPetten在另一个答案中建议的禁用方法。

谢谢!我也有这个想法!我只是想知道在c语言中是否有一种方法可以同时调用多个事件。再次感谢@是的,你可以。在InitializeComponent()调用后的表单构造函数中,或在表单加载中,添加所需数量的处理程序。this.scoreone.Click+=this.Roll\u Click;this.scoreone.Click+=this.Roll2\u单击;this.ScoreOnes.Click+=this.Roll3\u Click;谢谢你!我也有这个想法!我只是想知道在c语言中是否有一种方法可以同时调用多个事件。再次感谢@是的,你可以。在InitializeComponent()调用后的表单构造函数中,或在表单加载中,添加所需数量的处理程序。this.scoreone.Click+=this.Roll\u Click;this.scoreone.Click+=this.Roll2\u单击;this.ScoreOnes.Click+=this.Roll3\u Click;嗯,实际上不能这样调用Roll_Click(),需要是一个this。例如。但是是的,启用的部分做同样的工作!谢谢你!嗯,实际上不能这样调用Roll_Click(),需要是一个this。例如。但是是的,启用的部分做同样的工作!谢谢你!