将简单字符串从一种形式传递到另一种形式

时间:2013-07-01 06:45:45

标签: c# .net winforms

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为空时,不会填充字符串值。

我在这里做错了什么?

2 个答案:

答案 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());