我们必须在 WinForms 应用程序中重复我们的代码吗?
Do we have to repeat our code in a WinForms application?
所以我试图从 C# 控制台切换到表单,但我总是读到永远不要重复我们的代码等。
我的第一个项目是一个计算器,我找了一个网站只是为了看看它在win form下的样子,但是在这段代码中有很多重复的地方。这在形式上是否正常,比方说一个计算器?
这是很多重复,要改进它,请为所有按钮添加一个单击事件处理程序,例如:
btn1.Click += btnClick;
btn2.Click += btnClick;
然后将 sender 投射到一个 Button 以获取哪个被点击,一个粗略的例子:
private void btnClick(object sender, EventArgs e)
{
var btnName = ((Button)sender).Name;
var btnValue = btnName.Replace("btn",string.Empty);
if (textBox1.Text == "0" && textBox1.Text != null)
{
textBox1.Text = btnValue;
}
else
{
textBox1.Text = textBox1.Text + btnValue;
}
}
不要忘记取消挂钩表单卸载事件中的事件订阅:
btn1.Click -= btnClick;
btn2.Click -= btnClick;
所以我试图从 C# 控制台切换到表单,但我总是读到永远不要重复我们的代码等。
我的第一个项目是一个计算器,我找了一个网站只是为了看看它在win form下的样子,但是在这段代码中有很多重复的地方。这在形式上是否正常,比方说一个计算器?
这是很多重复,要改进它,请为所有按钮添加一个单击事件处理程序,例如:
btn1.Click += btnClick;
btn2.Click += btnClick;
然后将 sender 投射到一个 Button 以获取哪个被点击,一个粗略的例子:
private void btnClick(object sender, EventArgs e)
{
var btnName = ((Button)sender).Name;
var btnValue = btnName.Replace("btn",string.Empty);
if (textBox1.Text == "0" && textBox1.Text != null)
{
textBox1.Text = btnValue;
}
else
{
textBox1.Text = textBox1.Text + btnValue;
}
}
不要忘记取消挂钩表单卸载事件中的事件订阅:
btn1.Click -= btnClick;
btn2.Click -= btnClick;