我怎样才能在一个按钮上添加一个函数,来运行我创建的方法。我想把一个数组写到一个消息对话框中,只需按一下按钮就可以了,但我似乎没有任何进展,所以我转向stackoverflow寻求帮助,因为google并没有真正帮助我解决我的问题。
static void Tractors(Tractor[] tractors)
{
for (int i = 0; i < tractors.Length; i++)
{
Console.WriteLine((i + 1) + ", " + tractors[i].ToString());
}
}
这是我写出 "拖拉机 "表的函数。
private void button1_Click(object sender, EventArgs e)
{
}
我应该在button1_click方法中写些什么,这样它才会工作?
你需要将事件处理程序与按钮控件绑定,并在该事件处理程序中编写逻辑。如果是windows窗体应用程序,你可以这样做。
this.button1 = new System.Windows.Forms.Button();
this.button1.Click += new System.EventHandler(this.button1_Click);
private void button1_Click(object sender, EventArgs e)
{
//Call your methods here
}
你可以调用 Tractor()
恰如其分 Console.WriteLine()
. 两者都是静态函数。
然而这个函数完全乱了套,可能无法挽救。正确的名称应该是 printTractorsToConsole()
. 由于它包含 Console.WriteLine()
调用,它与Console应用程序紧密相连--避免将函数与一个显示技术捆绑在一起。
你需要一个更通用的函数来创建并返回一个字符串。然后你可以将这个字符串发送到 WriteLine()
,将其分配给 Label.Text
或 其他任何你想要的字符串. 字符串主要是为了从用户那里输入或向用户输出而存在的--而且有太多的方法可以将它送到用户那里。
//Not tested against a compiler, may contain syntax errors
static string TractorArrayToString(Tractor[] tractors){
string output = "";
for (int i = 0; i < tractors.Length; i++)
{
output += (i + 1) + ", " + tractors[i].ToString()) + Environment.NewLine;
}
return output;
}
但即使是函数也可能是个坏主意,因为那个函数会把所有的表示都绑在一个单一的格式上。一般来说,你会直接把那个循环写到Click Event里。但是这个函数看起来像是为了调试而打印的,所以可能会有用。