C# 按钮的PerformClick()事件
我在窗口窗体上有一个按钮,还有一个方法调用button的PerformClick()事件 现在,如果我将此按钮设置为false,则不会执行PerformClick()事件 可以吗?如果是,那么我想让表单上的按钮不可见,我该怎么做?我已经使按钮的背景色与表单背景色相同,但它仍然可见C# 按钮的PerformClick()事件,c#,.net,winforms,button,C#,.net,Winforms,Button,我在窗口窗体上有一个按钮,还有一个方法调用button的PerformClick()事件 现在,如果我将此按钮设置为false,则不会执行PerformClick()事件 可以吗?如果是,那么我想让表单上的按钮不可见,我该怎么做?我已经使按钮的背景色与表单背景色相同,但它仍然可见 如果我使用标签,那么除了更改其visible属性外,还可以使其不可见,只需使其背景色与表单的背景色相同,并保持文本为空即可。此外,还有标签的click()事件,但我找不到PerformClick()标签的事件。在引发任
如果我使用标签,那么除了更改其visible属性外,还可以使其不可见,只需使其背景色与表单的背景色相同,并保持文本为空即可。此外,还有标签的click()事件,但我找不到PerformClick()标签的事件。在引发任何事件之前,PerformClick会专门检查按钮是否“可用”。这样,当按钮被禁用、隐藏等时,您就不必添加额外的保护代码 与其在按钮上调用PerformClick方法,不如将按钮的Click事件处理程序中的代码放入一个方法中,然后从两个位置调用该方法
private void button1_Click(object sender, EventArgs e) {
DoSomething();
}
private void menu_Click(object sender, EventArgs e) {
DoSomething();
}
private void DoSomething() {
MessageBox.Show("Something done!");
}
PerformClick会在引发任何事件之前专门检查按钮是否“可用”。这样,当按钮被禁用、隐藏等时,您就不必添加额外的保护代码 与其在按钮上调用PerformClick方法,不如将按钮的Click事件处理程序中的代码放入一个方法中,然后从两个位置调用该方法
private void button1_Click(object sender, EventArgs e) {
DoSomething();
}
private void menu_Click(object sender, EventArgs e) {
DoSomething();
}
private void DoSomething() {
MessageBox.Show("Something done!");
}
也许我不理解这个问题,但是你可以把按钮设置为false
button1.Visible = false;
也许我不理解这个问题,但是你可以把按钮设置为false
button1.Visible = false;
我不确定我是否理解你的问题,但以下是一些可能会给你答案的帖子:
请参阅和我不确定是否理解您的问题,但以下是一些可能会给您答案的帖子:
请参见和有两种方法可以有效地使按钮不可见,但仍然可以调用其PerformClick()事件:
我想你需要解释一下为什么你说,为了回应Josh的建议,你把代码分成了一个“共享方法”:“因为如果我直接调用我在按钮的click()事件中调用的方法,它不会被处理或执行”
直接调用该方法时,为什么不“处理”或“执行”该方法?有两种方法可以有效地使按钮不可见,但仍然能够调用其PerformClick()事件:
我想你需要解释一下为什么你说,为了回应Josh的建议,你把代码分成了一个“共享方法”:“因为如果我直接调用我在按钮的click()事件中调用的方法,它不会被处理或执行”
当您直接调用该方法时,为什么不“处理”或“执行”该方法?我遇到了类似的问题,我找到了一种不同的解决方法。 为了帮助这里的其他人: 您可以使用控件(表单)方法InvokeOnClick强制单击Visible=False按钮
this.InvokeOnClick(button1, EventArgs.Empty);
如果您无权访问表单,可以尝试button1.Parent.InvokeOnClick
谢谢
(斯托伊科·古采夫在其他论坛发表)
Raffaeu提醒我“control.InvokeOnClick是一种受保护的方法”我遇到了类似的问题,我找到了一种不同的解决方法。 为了帮助这里的其他人: 您可以使用控件(表单)方法InvokeOnClick强制单击Visible=False按钮
this.InvokeOnClick(button1, EventArgs.Empty);
如果您无权访问表单,可以尝试button1.Parent.InvokeOnClick
谢谢
(斯托伊科·古采夫在其他论坛发表)
Raffaeu提醒我“control.InvokeOnClick是一个受保护的方法”你能给出它的代码吗…-1我和其他人一样不理解这个问题。请提供so代码。你能给出它的代码吗…-1我和其他人一样不理解这个问题。请提供so代码。如果我将按钮设置为可见false,则不会执行按钮的performclick()事件,这就是问题所在。如果我将按钮设置为可见false,则不会执行按钮的performclick()事件,这就是问题所在。因为如果我直接调用从按钮的click()调用的方法事件未处理或未执行..因为如果我直接调用从按钮的click()事件调用的方法,则该方法未处理或未执行..这是一个很好的建议,它很有效,只是您忘了提到该控件。InvokeOnClick是一个受保护的方法这是一个很好的建议,它很有效,除了