日期:2014-05-18  浏览次数:20732 次

调用combox的值
窗体1和窗体2
第一个问题:
窗体1中有comobox1和comboox2,两个控件集合都为:1,2,3.控件初始值为空;点击下一步时对comobox控件进行判断。
窗体1程序代码:
private void 下一步_Click(object sender, EventArgs e)
  {
  if ((comobox1.Text == null)|(comboox2.Text == null))
  {
  MessageBox.Show("请输入值!", "错误提示");
  }
  else
  {
  窗体2 obj = new 机器型式选择();
  obj.Show();
  this.Hide();
  }
  }
comobox的值为空,我运行程序后,messagebox没有显示而是直接进去窗体2。不知道是什么原因?
第二个问题:
comobox选择都为1后,在点击下一步后,进入窗体2我调用窗体1的comobox值.
代码:
public 窗体1 m_dyb;
if(Convert.ToSingle(m_dyb.comobox1.Text)==1)
{.....}
运行程序后报错:未将对象引用设置到对象的实例
偶未找到问题和解决的办法,望各位高手不吝赐教,小弟在此先拜谢了!


------解决方案--------------------
第一個comobox1.Text為""
第二個m_dyb.comobox1不存在
------解决方案--------------------
string.IsNullOrEmpty(comobox1.Text),这么判断,null和""是两码事
------解决方案--------------------
1、
comobox1.Text == null
===>
string.IsNullOrEmpty(comobox1.Text)
2、你虽然在窗体2里面声明了一个窗体里的实例m_dyb,但是这个m_dyb和你前面显示的窗体1不是一个,你可以通过窗体2的构造函数把窗体1的实例传过去,比如:
class 窗体2
{
窗体1 _m_dyb;
public 窗体1(窗体1 m_dyb) 
 {
this._m_dyb = m_dyb;
_m_dyb.comobox1.Text = "xxxx";
 }
}

---------------
else//实例化时
{

 窗体2 obj = new 机器型式选择(this);
obj.Show();
this.Hide();