在Form1
内,我有一个组合框cmbDataList
。在用户选择我想使用此选择将该选择文本传递给表单,因此我使用以下代码:
Form1.cs的
private void cmbDataList_SelectedIndexChanged(object sender, EventArgs e)
{
selectedOption = (ICustomData)cmbDataList.SelectedItem;
Form2 frm2 = new Form2() { SelectedData = selectedOption.ToString() };
}
内部Form2
我有一个SelectedData
属性,应该从Form1
Form2.cs
public string SelectedData { get; set; }
private void Form2_Load(object sender, EventArgs e)
{
txtSelectedData.Text = SelectedData ;
}
加载txtSelectedData.Text
为空时,不会填充字符串值。
我在这里做错了什么?
答案 0 :(得分:4)
只需将SelectedData
属性定义从自动生成更改为设置并返回txtSelectedData
文本框文本的属性:
public string SelectedData
{
get { return txtSelectedData.Text; }
set { txtSelectedData.Text = value; }
}
更新如果您在创建后立即显示表单,那么您当前的代码应该有效:
Form2 frm2 = new Form2() { SelectedData = selectedOption.ToString() };
frm2.Show(); // here
答案 1 :(得分:3)
您需要将selecteddata传递给form2构造函数。
所以像这样修改表格2 constructoo
public form2(String SelectedData){
txtSelectedData.Text = SelectedData ;
}
并且在创建form2的实例时,传递像这样的值
Form2 frm2 = new Form2(selectedOption.ToString());