C#编程的控件问题(ComboBox和ListBox),请大师帮忙解惑,菜鸟感激不尽!!!

我用一个下拉菜单(ComboBox),设三个选项,然后用一个ListBox控件,用以显示ComboBox的每个选项对应的内容,在ComboBox里写入代码privatev... 我用一个下拉菜单(ComboBox),设三个选项,然后用一个ListBox控件,用以显示ComboBox的每个选项对应的内容,在ComboBox里写入代码
private void cboPlayList_SelectedIndexChanged(object sender, EventArgs e)
{
lstTracks.Items.Clear();
switch (cboPlayList.Text)
{
case"Playlist 1":
lstTracks.Items.Add("Garage Band Tune 1.mp3");
lstTracks.Items.Add("Garage Band Tune 2.mp3");
lstTracks.Items.Add("Garage Band Tune 3.mp3");
lstTracks.Items.Add("Garage Band Tune 4.mp3");
break;

case"Playlist 2":
lstTracks.Items.Add("My Violin Practice.mp3");
lstTracks.Items.Add("My Dog Howling.mp3");
lstTracks.Items.Add("My Cat Screaming.mp3");
break;

case"Playlist 3":
lstTracks.Items.Add("Space Viking Symphony.mp3");
lstTracks.Items.Add("Uller Concerto.mp3");
lstTracks.Items.Add("Zarathustran Cycle.mp3");
lstTracks.Items.Add("Tanith Sonata.mp3");
break;
在ListBox里写入
private void lstTracks_DoubleClick(object sender, EventArgs e)
{
this.Text = "MyPlayer - " + this.lstTracks.SelectedItem.ToString();
}
期望得到的结果是在选择ComboBox里面的Playlist 2,ListBox里面会显示My Violin Practice.mp3,My Dog Howling.mp3,My Cat Screaming.mp3

可是运行结果却是选择ComboBox里面的Playlist 2,ListBox里面空白无显示!
请大师帮忙解惑,我分数不多,不能给你多分!!
展开
 我来答
百度网友8eb489e
2013-05-28 · TA获得超过660个赞
知道小有建树答主
回答量:348
采纳率:100%
帮助的人:341万
展开全部

测试了你的代码,在我这里运行通过,没有任何问题。

可能是.net版本的问题,试试把switch (cboPlayList.Text)换成switch (cboPlayList.SelectedItem.ToString())

更多追问追答
追问
按您说的改了,没有反应
追答
设置个断点单步追踪一下看看有没有进到case里去。
case"Playlist 3":
……
break;
//另外你看一下你代码的这个位置有没有这么一句:lstTracks.Items.Clear(); 我干过类似的傻事。
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syht2000
高粉答主

2013-05-28 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.5亿
展开全部
程序本身没什么问题,怀疑是你输入在combobox里输入的值有问题以致于无法判定(比如把英文字母输入成了中文),在switch (cboPlayList.Text)这一行下断点,运行,中断时候鼠标停到这个text上看一下。

其实也可以修改一下变成
switch(cboPlayList.SelectedIndex)
下面case 0 : case 1之类的就行了
追问
没有中断,直接就运行了,只是结果还是跟原来一样
追答
不可能啊,除非你combobox的事件不叫cboPlayList_SelectedIndexChanged,你双击一下cboPlayList,看看事件倒底是哪个,如果还是不行,加20267833偶看看。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yqsky3964
2013-05-28 · TA获得超过1875个赞
知道小有建树答主
回答量:1184
采纳率:0%
帮助的人:692万
展开全部
只有一种可能。你的switch根本就没有进去!所以用调试跟一下就知道了!下断点看看switch里得到的值是不是case中的其中一个,注意空格。有时候就是因为空格所以没进去。
追问
我只是会加入断点,然后运行,然后怎么看switch里得到的值是不是case中的其中一个?我还不太会用!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wlj1907
2013-05-28 · 超过76用户采纳过TA的回答
知道小有建树答主
回答量:149
采纳率:0%
帮助的人:37.9万
展开全部
如果是web窗体,是没有设置ComboBox的autopostback属性,代码没有执行,祝你好运
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vvikk
2013-05-28 · TA获得超过228个赞
知道答主
回答量:149
采纳率:0%
帮助的人:166万
展开全部
同样的代码也运行通过,你在 lstTracks.Items.Clear();前面加断点看看 是不是连方法都没进去?
追问
我不会看是否方法进去了,我只会加断点(F9)和运行(F5)
追答
在 lstTracks.Items.Clear(); 前面加断点 (F9)然后 运行(F5),
然后在你的程序上选playlist 1, playlist 2, playlist 3, 看你设断点的地方有没有变黄色,如果没有 那就是没执行到那步,如果执行到了就按 f10 一步步执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式