C#ComboBox.SelectIndex值任意改变

1.case"COM3":ComboBox1.SelectedIndex=2;break;2.stringduankou=ComboBox1.Text.ToString(... 1. case "COM3": ComboBox1.SelectedIndex = 2; break;
2. string duankou = ComboBox1.Text.ToString();
先执行1句之后执行2句,SelectedIndex 由2变为-1是什么情况?望大家指点,谢谢
展开
 我来答
涂海凡95
2013-07-21 · TA获得超过227个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:71.1万
展开全部
ComboBox1.SelectedIndex 是选中的项的序号

ComboBox1.Text是当前选中的项的文本

这两个根本不是一个东西,所以是不是你的选项的第二个的文本是-1啊?
更多追问追答
追问
是啊,我单步调试执行1句后index显示选中的是2,但是跳到第二句时index就变为-1了,是这个情况
追答
看了楼下你贴的代码,还是不是很全,也没法复制到自己电脑里调试。
不过提个醒,你选择combox框时调用了selectindexchanged事件,然后你case语句里改变了index,这个时候系统又回去调用selectindexchanged事件,相当于调用了两次selectindexchanged。

并且程序实际运行时代码的先后顺序和 你逐步调试时可能不同,所以单步调试正确不见得执行时一定正确
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yang1092076002
2013-07-22 · TA获得超过103个赞
知道小有建树答主
回答量:343
采纳率:0%
帮助的人:125万
展开全部
比如你 combox里有 你好,好的 两个值
排序下来就是 你好=0 好的=1
读取就是 ComboBox1.SelectedIndex = 0; //输出你好
ComboBox1.SelectedIndex = 1; 输出好的
更多追问追答
追问
我无论怎么改变,再执行string duankou = ComboBox1.Text.ToString();后,index就变为-1了
追答
-1 是为0、因为你是string duankou = ComboBox1.Text.ToString(); 你没给它赋index、 它就默认赋0、你改成 string duankou = ComboBox1.Items[2].ToString();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
但茂武
2013-07-22
知道答主
回答量:21
采纳率:0%
帮助的人:14.4万
展开全部
能给点详细的代码么? 这样不知道你要干啥
更多追问追答
追问

文字有点多 所以截个图 让您费心了

追答

这个事件是ComboBox1的选择索引发生改变的事件,你这里switch(ComboBox1.Text.ToString()){...},你不感觉这段代码是多余的? 当你选的文本是COM1的时候,索引本来就是0,你还要加上一句ComboBox1.SelectedIndex = 0; 有什么意义.....我其实也是个新手,不没有见过init(){..}这样的写法,不知道什么时候会出发你的init事件..

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
常用king_C
2013-07-21
知道答主
回答量:25
采纳率:0%
帮助的人:12.8万
展开全部
两句中间有什么操作啊?这样看不出来啊
追问
木有,combox选择触发了1事件,之后便执行2的语句,单步执行是这样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式