2

里面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时为空,未填充字符串值。

我在这里做错了什么?

4

2 回答 2

4

只需将SelectedData属性定义从自动生成更改为设置并返回文本txtSelectedData框文本的属性定义:

public string SelectedData 
{ 
  get { return txtSelectedData.Text; } 
  set { txtSelectedData.Text = value; } 
}

如果您将在创建后显示表单,则更新您当前的代码应该可以工作:

Form2 frm2 = new Form2() { SelectedData = selectedOption.ToString() };
frm2.Show(); // here
于 2013-07-01T06:55:13.730 回答
3

您需要将 selecteddata 传递给 form2 构造函数。

所以像这样修改表格2的构造

public form2(String SelectedData){
 txtSelectedData.Text = SelectedData ; 
}

并在创建 form2 的实例时,像这样传递值

 Form2 frm2 = new Form2(selectedOption.ToString());
于 2013-07-01T06:50:57.570 回答