不久前,我回答了一个老问题,询问如何在两种不同形式之间传递数据。答案也适用于您的情况。只需选择适合您需求的那一款即可。
1-(如果参数太多,不推荐)通过构造函数传递数据。
private void ShowForm(int a, string b, double c)
{
Form2 frm = new Form2(a, b, c);
frm.ShowDialog();
}
2-使用目标类的公共字段。(完全不推荐)
private void ShowForm(int a, string b, double c)
{
Form2 frm = new Form2();
frm.intval = a;
frm.strval = b;
frm.doubleval = c;
frm.ShowDialog();
}
3-使用属性。
private void ShowForm(int a, string b, double c)
{
Form2 frm = new Form2();
frm.IntValue = a;
frm.StringValue = b;
frm.DoubleValue = c;
frm.ShowDialog();
}
4-使用标签。
private void ShowForm(int a, string b, double c)
{
Form2 frm = new Form2();
frm.SomeTextBox.Tag = a;
frm.SomeTextBox2.Tag = b;
frm.SomeTextBox3.Tag = c;
frm.ShowDialog();
}
5-使用代表。(这个有点棘手)。
//in Form2
public delegate void PassValues(int a, string b, double c);
public PassValues passVals;
private void PassDataThroughDelegate(int a, string b, double c)
{
if(passVals != null)
passVals(a,b,c);
}
//in Form1
private void ShowForm(int a, string b, double c)
{
Form2 frm = new Form2();
frm.passVals = new Form2.PassValues(UseData);
frm.ShowDialog();
}
private void UseData(int a, string b, double c)
{
}
我个人最喜欢的是属性、委托以及在极少数情况下的构造函数。
或者,您可以创建一个静态类,将一些属性放入其中,然后以其他形式使用它。如果您的所有表单都需要共享一些信息,这将非常有用。由于这不是在表单之间传递数据的方法,因此我在上面没有提到这种方法。
更新
上面列出了在两个类之间传递数据的方法(在本例中为表单)。但是,在阅读了您的问题和评论后,我可以推荐这个:
对于这种特殊情况:
- 在 Visual Studio 中打开表单设计器。
- 双击按钮 1。(这将为 button1 的点击事件生成一个事件处理程序)。
像这样填充函数:
private void button1_Click(object sender, EventArgs e)
{
textBox2.Text = ChangeString(textBox1.Text);
}
private string ChangeString(string str)
{
string result = "do some stuff to " + str;
return result;
}
这里的ChangeString
功能本质上是做你想做的Program.cs
事。只需将您的功能添加到它。如果您希望它做的事情更复杂,您可以创建一个类并将功能添加到该类。
我给你的一般建议是:
我认为您应该参加一些 OO(面向对象)课程或阅读一些书籍。在实际执行之前,您应该熟悉 OO 的概念并计划您应该执行的操作。此外,您应该了解 .Net 和 C# 的内层,并了解程序每个部分的用途。我会先使用控制台应用程序,然后再使用 Winforms 和其他 UI 原则。
也就是说,我应该很快说,Program.cs
它只是作为您的程序的入口点。您不应该尝试向该类添加逻辑并尝试将每个类的实现保留给它自己。尝试将每个类可以做的事情分开,以避免复杂的设计。
我希望这可以帮助您入门。