在C#中,我開發了一個應用程序,但是我得到了一些錯誤 我的項目form1和form2中有兩個表單。 但是當我想從Form2調用任何對象屬性時,不會顯示並調用它。我怎樣才能做到這一點?我試着做,但dıdn't發生C#使用Form2中TextBox的屬性
有Form2上的文本框,我想從Form1中
下面的代碼使用它的屬性,因爲我希望它是...
Messagebox.Show(Form2.textBox1.Text.ToString());
在C#中,我開發了一個應用程序,但是我得到了一些錯誤 我的項目form1和form2中有兩個表單。 但是當我想從Form2調用任何對象屬性時,不會顯示並調用它。我怎樣才能做到這一點?我試着做,但dıdn't發生C#使用Form2中TextBox的屬性
有Form2上的文本框,我想從Form1中
下面的代碼使用它的屬性,因爲我希望它是...
Messagebox.Show(Form2.textBox1.Text.ToString());
首先,Form1
真的不應該對Form2
的內部控制有任何瞭解。該文本框不應該公開。相反,在Form2
創建一個屬性,它暴露了你需要的信息:
public class Form2 : Form
{
private Textbox textbox1;
public string SomeText //TODO replace with meaningful name
{
get { return textbox1.Text; }
}
}
接下來,在某些時候你大概創建窗體的實例來證明這一點。
Form2 childForm = new Form2();
childForm.ShowDialog();
MessageBox.Show(childForm.SomeText);
在您可能還需要的Form2
實例存儲爲Form1
實例字段,而不僅僅是一個局部變量的一些情況:
private Form2 childForm = new Form2();
private void SomeMethod()
{
childForm.Show();
}
private void SomeOtherMethod()
{
MessageBox.Show(childForm.SomeText);
}
感謝您的幫助,它工作正常,您幫我了 –
試試看你能通過實例訪問屬性 表格1
public string _parameter;
public Form1()
{
InitializeComponent();
}
public void form2_show_click(object sender, EventArgs e)
{
form2 frm = new form2();
frm.ShowDialog();
_parameter = frm.parameter;
}
form2
public string parameter;
public void form1_show_click(object sender, EventArgs e)
{
parameter = textBox1.Text;
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
您是否有Form1的實例在Form1上使用? – Jonesopolis
將文本框內容作爲參數傳遞給窗體的構造函數。 –
這應該不會編譯,因爲文本框不是靜態的(至少我希望它不是;它不應該是)。它也不應該公開;你應該添加一個剛剛公開文本的屬性。 – Servy