界面上放了一个下拉列表框 和一个按钮,当点击按钮的时候,判断下拉列表框的值,如果是工人, hiretype = 1否则=6
if部分的代码 在执行的时候,直接被跳过了,else也没有执行,在‘及时窗口’中gongren.Text.Trim()的值也等于"工人"求解 
       private void btnAdd_Click(object sender, EventArgs e)
        {
            int hiretype;
            if (gongren.Text.Trim() == "工人")
            {
                hiretype = 1;
            }
            else
            {
                hiretype = 6;
            }
}

解决方案 »

  1.   

    怎么会??运行到  int hiretype;
    就跳出方法体了??
      

  2.   

    再好好打断点看看,确定if和else都没进吗?
    或者在这过程中触发了其他事件,自己好好找找吧,这个很难猜的
      

  3.   

    下拉列表框不能用Text属性啊,应该用SelectedValue
      

  4.   

    是不是btnAdd_Click事件没触发。。
    或者if/else执行了,但hiretype又被后面的代码改回初始值。
      

  5.   

    int hiretype;
    这一行断点一下,检查一下,呵呵。
      

  6.   

    你是不是在Load方法里面给gongren赋值过了?如果是,请将赋值操作写在下面这个里面if (!IsPostBack)
    {
    //赋值操作
    }如果说没有赋值操作,那么,请将gongren.Text.Trim() 
    改为private void btnAdd_Click(object sender, EventArgs e)
            {
                int hiretype;
                if (gongren.SelectedValue == "工人")
                {
                    hiretype = 1;
                }
                else
                {
                    hiretype = 6;
                }
            }
      

  7.   

    是你的Click事件没有关联上这个方法吧,
      

  8.   

    我的SelectedValue 是空的,下拉列表的items的集合是(工人,职员)text 可以取出值,SelectedValue 是空的单击事件没激活了,运行到if后,就直接跳出if了
      

  9.   

    呵呵  楼主是不是用同时请求了2次  asp.net是多线程处理
      

  10.   

    下拉列表框(DropDownList)  
    楼主你用的是TextBox?
    如果是TextBox的话就是if(TextBox.text.Trim() == "工人");
    DropDownList就是if(DropDownList.SelectedItem.Value == "工人")你程序没错的、控件丢错了吧!
      

  11.   

    if(DropDownList.SelectedItem.Text == "工人")打错、
      

  12.   

    首先应该看你的"工人"是属于下拉列表的value值还是text的值,这两个取法是不一样的!如果是value值的话应该是:
    private void btnAdd_Click(object sender, EventArgs e)
            {
                int hiretype;
                if (gongren.SelectedValue == "工人")
                {
                    hiretype = 1;
                }
                else
                {
                    hiretype = 6;
                }
            }
    如果不是的话,就得
    private void btnAdd_Click(object sender, EventArgs e)
            {
                int hiretype;
                if (gongren.SelectedItem.Text.ToString() == "工人")
                {
                    hiretype = 1;
                }
                else
                {
                    hiretype = 6;
                }
            }
    了!
      

  13.   

    combobox.SelectedItem是没有text属性的
    这两个方法我都试过了,都无效。
    gongren 是一个combobox控件
         private void btnAdd_Click(object sender, EventArgs e)
            {
                int hiretype;
               
                if (gongren.SelectedItem.ToString() == "工人")
                {
                    hiretype = 1;
                }
                else
                {
                    hiretype = 6;
                }    
                try
                {
    //////////////
    }
       catch (Exception)
       {
       ////////////////////////////
       }
      }
      

  14.   

    没有报错,
    就是执行到    if (gongren.SelectedItem.ToString() == "工人")
    然后就跳到       try            {}了
    但实际上gongren下拉列表中已经有'工人'这个值了
    我是直接把‘工人’写在控件的item集合里了
    gongren 是一个cobobox
      

  15.   

    gongren.SelectedItem.ToString() == "工人"换成 gongren.SelectedValue()
      

  16.   

      int hiretype = DropDownList.SelectedItem.Text == "工人" ? 1 : 6;
      

  17.   

    combox的值建议用代码绑定进去
     DataTable dt = new DataTable(); 
                dt.Columns.Add("name"); 
                dt.Columns.Add("value"); 
                DataRow dr = dt.NewRow(); 
                dr[0] = "序号"; 
                dr[1] = "UID"; 
                dt.Rows.Add(dr); 
      this.TypeComboBox.DataSource = dt;
                this.TypeComboBox.DisplayMember = "name";
                this.TypeComboBox.ValueMember = "value"; 在FORMLOAD的时候绑定这个数据
    然后在调用的时候,也就是在CLICK事件中
    string type = this.TypeComboBox.SelectedValue.ToString();
    然后
    if type="工人"
    以下省略...代码出自我的小程序,可用的,给分吧~
      

  18.   

    你的问题,就是ComboBox.DisplayMember是工人,但是ComboBox.ValueMember 不一定
      

  19.   

    值是能取出来的,可就是这个if 运行一下,就条到try{}不执行,if体了
      

  20.   

    下拉列表框是问题重点,你最好在判断时先获取到下拉列表框的索引值后再对其value和text进行判断~