gpt4 book ai didi

c# - 自定义按钮上的 PerformClick 将不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 11:03:04 28 4
gpt4 key购买 nike

我有一个按钮的自定义类,当我为我的任何自定义按钮触发 PerformClick 时,没有任何反应。这是代码:

自定义类的声明

public class NonFocusButton : Button
{
public NonFocusButton()
{
SetStyle(ControlStyles.Selectable, false);
}
}

List<NonFocusButton> buttons = new List<NonFocusButton>();

这是 p 函数:

void p()
{
for (int i = 1; i <= 5; i++)
{
NonFocusButton aux = new NonFocusButton();
aux.Font = new System.Drawing.Font("Britannic Bold", 15.75F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point,
((byte)(0)));
aux.Size = new System.Drawing.Size(192, 43);
aux.UseVisualStyleBackColor = true;
aux.UseWaitCursor = false;
aux.Visible = false;
buttons.Add(aux);
this.Controls.Add(aux);
}

// button start

buttons[0].Location = new System.Drawing.Point(410, 168);
buttons[0].Text = "START GAME";
buttons[0].Click += new System.EventHandler(this.button0_Click);
}

private void button0_Click(object sender, EventArgs e)
{
this.Close();
}

buttons[0].PerformClick(); // will not work

最佳答案

按钮是如何声明和填充的?这就是我的方式,并且有效。

// declaration  
List<Button> butons = new List<Button>();

// calling
buttons.Add(new Button());
p();
buttons[0].PerformClick();

编辑:

按钮必须先获得焦点才能被点击。
为什么不这样做:

button0_Click(buttons[0], EventArgs.Empty);  

或者在您调用 PerformClick() 的地方直接调用 Close()

关于c# - 自定义按钮上的 PerformClick 将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16951142/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com