刚开始学C#问一个弱弱的问题

nettt 2012-06-29 11:34:04
界面上放了一个下拉列表框 和一个按钮,当点击按钮的时候,判断下拉列表框的值,如果是工人, 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;
}
}
...全文
356 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿冷 2012-06-29
  • 打赏
  • 举报
回复
int hiretype;
这一行断点一下,检查一下,呵呵。
stiff_neck 2012-06-29
  • 打赏
  • 举报
回复
是不是btnAdd_Click事件没触发。。
或者if/else执行了,但hiretype又被后面的代码改回初始值。
ZuoNothing 2012-06-29
  • 打赏
  • 举报
回复
设个断点看看 有没有执行到
Lugyedo 2012-06-29
  • 打赏
  • 举报
回复
下拉列表框不能用Text属性啊,应该用SelectedValue
lvfeng19806001 2012-06-29
  • 打赏
  • 举报
回复
再好好打断点看看,确定if和else都没进吗?
或者在这过程中触发了其他事件,自己好好找找吧,这个很难猜的
  • 打赏
  • 举报
回复
怎么会??运行到 int hiretype;
就跳出方法体了??
绿领巾童鞋 2012-06-29
  • 打赏
  • 举报
回复
估计你的下拉列表框的索引值是-1
绿领巾童鞋 2012-06-29
  • 打赏
  • 举报
回复
下拉列表框是问题重点,你最好在判断时先获取到下拉列表框的索引值后再对其value和text进行判断~
yangchun1213 2012-06-29
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 的回复:]

int hiretype = DropDownList.SelectedItem.Text == "工人" ? 1 : 6;
[/Quote]
这样简明扼要,你说的那问题,自己好好调下就OK了
nettt 2012-06-29
  • 打赏
  • 举报
回复
值是能取出来的,可就是这个if 运行一下,就条到try{}不执行,if体了
nycgwqd 2012-06-29
  • 打赏
  • 举报
回复
你的问题,就是ComboBox.DisplayMember是工人,但是ComboBox.ValueMember 不一定
nycgwqd 2012-06-29
  • 打赏
  • 举报
回复
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="工人"
以下省略...

代码出自我的小程序,可用的,给分吧~
yitao89 2012-06-29
  • 打赏
  • 举报
回复
int hiretype = DropDownList.SelectedItem.Text == "工人" ? 1 : 6;
pz25925 2012-06-29
  • 打赏
  • 举报
回复
gongren.SelectedItem.ToString() == "工人"

换成

gongren.SelectedValue()
nettt 2012-06-29
  • 打赏
  • 举报
回复
我是觉得不是取值有问题
因为值是可以取出来的。
nettt 2012-06-29
  • 打赏
  • 举报
回复
没有报错,
就是执行到 if (gongren.SelectedItem.ToString() == "工人")
然后就跳到 try {}了
但实际上gongren下拉列表中已经有'工人'这个值了
我是直接把‘工人’写在控件的item集合里了
gongren 是一个cobobox
uyth67 2012-06-29
  • 打赏
  • 举报
回复
出什么错?
nettt 2012-06-29
  • 打赏
  • 举报
回复
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)
{
////////////////////////////
}
}
tongtong3626531 2012-06-29
  • 打赏
  • 举报
回复
首先应该看你的"工人"是属于下拉列表的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;
}
}
了!
  • 打赏
  • 举报
回复
if(DropDownList.SelectedItem.Text == "工人")

打错、
加载更多回复(6)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧