【发布时间】:2012-11-08 20:05:48
【问题描述】:
几天前我问了一个关于在课堂上的表单上填充列表框的问题。它有效并且很棒!但是我现在想对文本框或标签做同样的事情。该问题的答案如下:
您正在做的是创建表单的一个新实例 - 我想 您正在尝试在现有表单的列表框中添加项目?
如果是这样,请这样做。
使用列表框在表单上创建一个函数,例如:
public void addItemToListBox(string item) { listBox1.Items.Add(item); }然后,在类中(记得添加 using System.Windows.Forms 参考)
public void doStuff() { //Change Form1 to whatever your form is called foreach (Form frm in Application.OpenForms) { if (frm.GetType() == typeof(Form1)) { Form1 frmTemp = (Form1)frm; frmTemp.addItemToListBox("blah"); } } }
这很好用。现在我想对文本框做同样的事情。我想知道是否有人可以解释或是否有人对此有链接?
我有一个表格和一个班级。该表单创建了一个类的新实例并在该类中启动一个方法,例如数学方程式 4+4;我希望从类中的方法中将答案“8”显示在 form1 上的文本框或标签中。
【问题讨论】:
-
那个答案很糟糕;从一开始就是糟糕的设计......
-
您想将文本设置为您班级的 TextBox 吗?
-
@DmitryMartovoi 这个答案比这个更好,但仍然没有它应该的那么好。在这种特殊情况下,父表单应该订阅子表单上的事件;孩子不应该参考父母。也就是说,我们不知道“其他类”是否是子窗体。
-
是的,我知道,但它是一个简单的解决方案。
标签: c# winforms forms instances