combobox控件

WGL__WGL 2013-04-18 03:39:06
 public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
string[] xing = { "李", "张" };
foreach (string x in xing)
{
comboBox1.Items.Add(x);
comboBox1.SelectedIndex = 0;
}
string[] ming = { "二", "三", "四", "五" };

foreach (string m in ming)
{
comboBox2.Items.Add(m);
comboBox2.SelectedIndex = 0;
}
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{

comboBox2.Items.Clear();


if(comboBox1.SelectedItem.Equals("李"))
{
string[] ming = { "二", "三" };
foreach(string m in ming){
comboBox2.Items.Add(m);
}
comboBox2.SelectedIndex = 0;
}
comboBox2.Items.Clear();
if (comboBox1.SelectedItem.Equals("张"))
{
string[] ming = { "四", "五" };
foreach (string m in ming)
{
comboBox2.Items.Add(m);
}
comboBox2.SelectedIndex = 0;
}
}
}
}


我想实现当选择“李”时,第二个combobox控件自动加载“二,三”,当选择“张”时,加载“四,五”。
问题是:加载时第一个combobox控件是“李”,第二个combobox控件是“二,三,四,五”,当选“张”时,没问题,第二个combobox控件是“四,五”,但选“李”,就只有“二”了。
怎样才能在加载时是“李”,自动就有“二,三”?求指教。
...全文
313 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
leafmao 2013-04-22
  • 打赏
  • 举报
回复
引用 27 楼 WGL__WGL 的回复:
引用 24 楼 leafmao 的回复:是可以实现,打错字了 谢谢,是可以实现了。 但选“张”时,为什么combobox2显示不了“四,五”呢?我就是困惑为什么我的方法实现不了使combobox控件像button控件一样,一触发就有事件发生?是哪里出错了,还是代码放错位置了?
你写错了吧 我调试的时候,选张显示“四五”,选李只显示“二三”
WGL__WGL 2013-04-20
  • 打赏
  • 举报
回复
引用 29 楼 laq616853363 的回复:
怎么打开一看还是懒羊羊啊,刷新了下,这次是混淡了~ 解决了就结贴呗~ 就给我个8分,这周我的技术分是整数了~
迟了,下次吧
Csharp_琪 2013-04-20
  • 打赏
  • 举报
回复
怎么打开一看还是懒羊羊啊,刷新了下,这次是混淡了~ 解决了就结贴呗~ 就给我个8分,这周我的技术分是整数了~
WGL__WGL 2013-04-20
  • 打赏
  • 举报
回复
引用 21 楼 laq616853363 的回复:
呃,刷新了下,看到了,问题解决了没有,怎么解决的?
 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            string[] xing = { "李", "张" };
                comboBox1.Items.Add(x);
                comboBox1.SelectedIndex = 0;
            }
        }
 
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
 
            comboBox2.Items.Clear();
             
            
            if(comboBox1.SelectedItem.Equals("李"))
            {
                string[] ming = { "二", "三" };
                foreach(string m in ming){
                    comboBox2.Items.Add(m);                   
                }
                comboBox2.SelectedIndex = 0;
            }
            if (comboBox1.SelectedItem.Equals("张"))
            {
                string[] ming = { "四", "五" };
                foreach (string m in ming)
                {
                    comboBox2.Items.Add(m);
                }
                comboBox2.SelectedIndex = 0;
            }
        }                   
        }
    }
终于解决了,我开始写的很冗繁。
DENQH 2013-04-19
  • 打赏
  • 举报
回复
直接用comboBox1.DataSource = xing; //清空是多余的
_小黑_ 2013-04-19
  • 打赏
  • 举报
回复
引用 18 楼 DENQH 的回复:
直接用comboBox1.DataSource = xing; //清空是多余的
+1
WGL__WGL 2013-04-19
  • 打赏
  • 举报
回复
引用 24 楼 leafmao 的回复:
是可以实现,打错字了
谢谢,是可以实现了。 但选“张”时,为什么combobox2显示不了“四,五”呢?我就是困惑为什么我的方法实现不了使combobox控件像button控件一样,一触发就有事件发生?是哪里出错了,还是代码放错位置了?
leafmao 2013-04-19
  • 打赏
  • 举报
回复
引用 25 楼 laq616853363 的回复:
引用 23 楼 leafmao 的回复: 又看到妳好心地去写完整的功能代码给人了~ 真心觉得妳太好了~ 工作不忙吗~?
刚把手头的事情做完
Csharp_琪 2013-04-19
  • 打赏
  • 举报
回复
引用 23 楼 leafmao 的回复:
又看到妳好心地去写完整的功能代码给人了~ 真心觉得妳太好了~ 工作不忙吗~?
leafmao 2013-04-19
  • 打赏
  • 举报
回复
是可以实现,打错字了
leafmao 2013-04-19
  • 打赏
  • 举报
回复

private void Form1_Load(object sender, EventArgs e)
        {
            string[] xing = { "李", "张" };
            foreach (string x in xing)
            {
                comboBox1.Items.Add(x);
                comboBox1.SelectedIndex = 0;
            }
            //string[] ming = { "二", "三", "四", "五" };把这部分都注释掉
 
           // foreach (string m in ming)
           // {
              //  comboBox2.Items.Add(m);
              //  comboBox2.SelectedIndex = 0;
           // }           
        }

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
           comboBox2.Items.Clear();                         
            if(comboBox1.SelectedItem.Equals("李"))
            {
                string[] ming = { "二", "三" };
                foreach(string m in ming){
                    comboBox2.Items.Add(m);                   
                }
                comboBox2.SelectedIndex = 0;
            }
           //comboBox2.Items.Clear();这句也注释掉
            if (comboBox1.SelectedItem.Equals("张"))
            {
               
                string[] ming = { "四", "五" };
                foreach (string m in ming)
                {
                    comboBox2.Items.Add(m);
                }
                comboBox2.SelectedIndex = 0;
            }
        }                   
已经测试过,可是实现楼主想要的窗体一加载就得到“李”——“二,三”
WGL__WGL 2013-04-19
  • 打赏
  • 举报
回复
引用 14 楼 WGL__WGL 的回复:
怎样才能实现窗体一加载就得到“李”——“二,三” 而不是“李”——“二,三,四,五”?
这才是重点
Csharp_琪 2013-04-19
  • 打赏
  • 举报
回复
呃,刷新了下,看到了,问题解决了没有,怎么解决的?
WGL__WGL 2013-04-19
  • 打赏
  • 举报
回复
引用 16 楼 laq616853363 的回复:
懒羊羊头像,我曾经很喜欢 问题解决了没有,懒羊羊同学?
我换了头像的……
DENQH 2013-04-18
  • 打赏
  • 举报
回复
string[] xing = { "李", "张" };
            comboBox1.Items.AddRange(xing);
           或 comboBox1.DataSource = xing;
            comboBox1.SelectedIndex = 0;

            string[] ming = { "二", "三", "四", "五" };
            comboBox2.Items.AddRange(ming);
           或 comboBox2.DataSource = ming;
            comboBox2.SelectedIndex = 0;
            //用循环不是多余的么?
Csharp_琪 2013-04-18
  • 打赏
  • 举报
回复
懒羊羊头像,我曾经很喜欢 问题解决了没有,懒羊羊同学?
L_Y_H_1_2_3_4 2013-04-18
  • 打赏
  • 举报
回复
就是我写的代码里,我一装载时值是comboBox1.SelectedItem.Equals(""),那么comboBox2是2,3,4,5.那么你装载时comboBox1.SelectedItem.Equals("李")你就写个判断就行了,自己想吧
WGL__WGL 2013-04-18
  • 打赏
  • 举报
回复
怎样才能实现窗体一加载就得到“李”——“二,三” 而不是“李”——“二,三,四,五”?
WGL__WGL 2013-04-18
  • 打赏
  • 举报
回复
引用 11 楼 L_Y_H_1_2_3_4 的回复:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { comboBox2.Items.Clear(); if (comboBox1.SelectedItem.Equals("李")) ……
首先感谢你能抽空写了代码,但目前对我来说实现什么效果不是重点,重点是找出问题出在哪里,再次谢谢你。
wskicfuu 2013-04-18
  • 打赏
  • 举报
回复
真不好意思,我也试过了,是可以的。 public Form1() { InitializeComponent(); string[] xing = { "李", "张" }; foreach (string x in xing) { comboBox1.Items.Add(x); comboBox1.SelectedIndex = 0; } string[] ming = { "二", "三", "四", "五" }; foreach (string m in ming) { comboBox2.Items.Add(m); comboBox2.SelectedIndex = 0; } } private void Form1_Load(object sender, EventArgs e) { } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox1.SelectedItem.Equals("李")) { comboBox2.Items.Clear(); string[] ming = { "二", "三" }; foreach (string m in ming) { comboBox2.Items.Add(m); } comboBox2.SelectedIndex = 0; } if (comboBox1.SelectedItem.Equals("张")) { comboBox2.Items.Clear(); string[] ming = { "四", "五" }; foreach (string m in ming) { comboBox2.Items.Add(m); } comboBox2.SelectedIndex = 0; } }
加载更多回复(11)

110,561

社区成员

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

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

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