winform中TextBox如何传值到另一个窗体的ComboBox控件上

首先是ComboBox控件的窗体,代码如下
public partial class zhuce : Form
{

private string b;

public zhuce(string t)
{

b = t;

}
public zhuce()
{

comboBox1.Items.Add(b);
InitializeComponent();

}

这是另一个窗体的按钮控件的事件:
private void button1_Click(object sender, EventArgs e)
{

string t = textBox1.Text.Trim().ToString();

zhuce zhu = new zhuce(t);}

但是运行时错误,说是未将对象引用设置到对象的实例。
请问如何解决,我的目的是按确定键后,TextBox控件中的值传到第二个窗体中的ComboBox控件上并显示出来

comboBox1.Items.Add(b);把这段放到InitializeComponent();后面
因为InitializeComponent();是定义窗体上控件的方法
对控件的其他操作都要在这个后面。
也就是说,程序执行完InitializeComponent();之后才有combobox这个控件。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-02-10
这个简单
定义一个全局的静态变量记录TextBox的Text属性的内容
例如:
在Form1中定义
public static string str=TextBox1.Text;//static必须有啊
在Form2中用如下方法调用
{
ComboBox1.Items.Add(Form1.str);//调用成功
}

组建也可以用此方法调用!
第2个回答  2010-02-08
这是你的代码 我修改了下 修改后的地方我注释了为什么这么改

public partial class zhuce : Form
{
private string b;

public zhuce(string t)
{
InitializeComponent();
comboBox1.Items.Add(t); //在有参数的构造方法中绑定ComboBox 而且要在 InitializeComponent() 方法下面绑定
}
public zhuce()
{
InitializeComponent();
}

这是另一个窗体的按钮控件的事件:

private void button1_Click(object sender, EventArgs e)
{

string t = textBox1.Text.Trim().ToString();

zhuce zhu = new zhuce(t);
zhu.Show(); //创建另一个窗体的对象后一定要调用Show()方法才能显示另一个窗体
}

这样就能完成你要的效果了
第3个回答  2010-02-05
你要是想传值的话,在窗体内定义类属性,窗体也是一个类。构造窗体对象的时候像实体类一样给属性赋值,之后在窗体的onload事件里填进combobox。要你这样用构造方法传值,要是在一个非新构造的窗体你怎么传值?
第4个回答  2010-02-05
public Form1()
{
InitializeComponent();
}
Form2 f2 = new Form2();
private void button1_Click(object sender, EventArgs e)
{
f2.comboBox1.Items.Add(this.textBox1.Text);
}

这事FORM1 的
FORM2只有一个 public的 COMBOX ;

private void button2_Click(object sender, EventArgs e)
{

f2.Show();
}
相似回答