我對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