我对C#
编程非常陌生,我在Windows应用程序中制作了一个Keyboard,我使用文本框作为显示内容,因此每个按钮将有一个单独的字母,然后单击每个按钮将进行键入进入文本框。因此我的应用程序上将有50个按钮。有没有一种创建带有更多按钮的KeyPad的方法,所以我可以创建一个按钮数组,以便能够编写通用代码?
甚至可以为100个按钮编写通用代码吗?
还是我必须分别编辑每个button_click
函数?
谢谢!!
我分别设置了放置按钮,我意识到这将花费很多时间..我也乐于接受任何新建议,甚至采用全新的方法来解决这个问题...
答案 0 :(得分:1)
这是一个简单的示例,其中的屏幕包含2个按钮(a和b)。您可以将所有按钮注册到同一单击事件,而不必分别进行每个按钮。
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//loop through all the buttons and assign to btnClick
var c = GetAll(this, typeof(Button));
foreach (var item in c)
{
item.Click += btnClick;
}
}
private void btnClick(object sender, EventArgs e)
{
//The sender is a Button so you find the text and append it to your textbox/output
txtOutput.Text += ((sender as Button).Text);
}
public IEnumerable<Control> GetAll(Control control, Type type)
{
var controls = control.Controls.Cast<Control>();
return controls.SelectMany(ctrl => GetAll(ctrl, type))
.Concat(controls)
.Where(c => c.GetType() == type);
}
}
}
希望这有助于指导您正确的方向。