A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李广水 中级黑马   /  2013-5-6 03:48  /  2148 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
  2.         {
  3.             1.DropDownStyle = ComboBoxStyle.DropDownList;
  4.             comboBox1.Items.Add("哈佛很快将艾丝凡");
  5.             comboBox1.Items.Add("的说法的说法多少");
  6.             comboBox1.Items.Add("的说法搜到");
  7.         }
  8. 运行结果列表是空的,为什么啊。。。
复制代码

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

5 个回复

倒序浏览
combobox添加下拉选项一般不在comboBox1 _SelectedIndexChanged事件中进行
一般自定义方法来添加

你可以试试在Form1的窗体的单击事件中添加选项看看 private void Form1_Load(.....)这 个事件
{
            comboBox1.Items.Add("ABC");  //应该可以的 ^^
            comboBox1.Items.Add("DEFG");
}

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
1。 SelectedIndex:选中项的序号。没有任何选中的时候是-1, 否则是选中的序号(0开始);
2。 Items.Add的参数是Object类型,也就是可以放任意类型的数据,可以设置DisplayMember属性设定显示的属性,通过SelectedItem属性取得到就是选择的条目对应的对象。
回复 使用道具 举报
你看你的代码是当ComBox中选中的项变化时才出发事件,然后才会在ComBOx中添加子项,也就是说在这个事件触发之前ComBox中根本就没有内容,但又要内容变化时添加内容,这不是很矛盾吗?所以应该将ComBox中添加内容的代码写在Form_Load事件中!窗体一加载就将内容添加到ComBox里面......希望能对你有帮助!
回复 使用道具 举报
本帖最后由 张伟86 于 2013-5-6 09:44 编辑

1、首先,你选择在co'm'boBox的selectedIndex选择项中添加初始化项是有问题的,就如2楼和3楼所说,index初始化值为-1,里面item列表为空,你没有能使index变化的item因素,不能引发selectedindex事件触发。
2、如果你想添加初始化选项,一般,可以在comboBox的属性框中的items选项中直接添加,或者在初始化InitializeComponent()中添加,或者如同3楼所说在form_load中添加,总之,就是在可能的窗口初始化位置处添加combobox的初始化值。建议直接在items里面添加,不是常说所见即所得吗?windows让我们如此“傻瓜”的使用控件,是多么好的事情。
3、当然,如果你非要在combobox中动态添加,你可以在comboBox1_DropDown事件中添加,当你点击下拉列表时,就会动态添加选项,不过你要做好使用combobox的clear函数的准备,以备combobox的items数目多到将你挤出房间之前解决它们。
4、PS:如果你觉得combobox1一开始运行时,显示的内容为空的话,可以在combobox1的属性框中的text属性中添加好一个内容。也可以动态初始化时令combobox1的当前选项为你要它显示的选项。不过似乎comboBox1_DropDown就落入了下层了。

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
在窗体 Load 事件中添加这些代码,应该是有效的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马