我对C#很新颖 - 但一切都很顺利 - 至此。传递一个类和一个表之间的值
我从一个表单和一个完成大部分工作的类(非静态和程序部分)开始。我在表单1中实例化类的一个对象,并进行登录。
然后我切换到下一个窗体form2。其实,这个班是这样做的。我有一个方法,包含行:
this.f2 = new Form2();
然后:
f2.Show();
f2是类型的Form2类成员 - 和所有刚刚工作正常 - 到这一点。
这个Form2只是一个大的文本框,我想在其中显示网络事件。事件处理程序工作得很好 - 但对表单的引用似乎不起作用。如果我这样做
f2.tetBox1.Text = "Some text";
它只是不会改变文本框中的文本。
我在这里做错了什么?
下面是我在做什么的更详细描述:
Form1
通过一些日志信息myProg
,是的MyClass
一个实例。如果登录成功,Form1中调用myProg.makeForm();
这是在MyClass的方法是这样的:
public void makeForm() {
this.f2 = new Form2();
f2.Show();
this.sendString("start f2");
}
这是MyClass.sendString()
:
private void sendString(string text) {
SystemSounds.Beep.Play();
this.f2.setTextBox(text);
}
这就要求,因为你看到的,setTextBox()
Form2
- 我按照这里提出的方式实施。奇怪的是,到目前为止,一切运作良好。 Form2显示一个textBox1包含“开始f2” - 正如所料。但是当事件进入时,textBox1中的文本不会改变。嘟嘟声得到充分发挥 - 所以方法sendString()被称为好吧。
我观察到的一件事:如果在呼叫this.f2.setTextBox(text);
之后放置嘟嘟声线,如果从事件处理程序调用该方法,则不会播放它。 。
f2
,顺便说一句,是MyClass
一个私有成员:
private Form2 f2;
你是什么意思'似乎没有工作'。它是否编译?你实际上是否收到错误信息? 'tetBox1'是'form2'的公共成员? – 2013-03-03 22:33:21
请显示**一些**的代码 - 但不是两个窗体的''.cs'文件的完整转储。 – Yuck 2013-03-03 22:34:07
[表单之间共享数据]的可能重复(http://stackoverflow.com/questions/3800603/sharing-data-between-forms) – 2013-03-03 22:35:26