2 zllxp1314 zllxp1314 于 2016.01.28 10:16 提问

两个combobox怎样选择一个另一个显示对应的信息,相互都能选

我用的是SelectedValueChanged,但是两个都使用这个事件就会报错
比如第一个是显示产品的代码,另一个显示的产品名称,相互要选择后对应显示。麻烦各位大神看看!

2个回答

lzj_999
lzj_999   2016.01.28 10:50
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        ComboBox cbx = sender as ComboBox;
        if (cbx.Name == "comboBox1")
        {
            //第一个选择框
            //给第二个赋值comboBox2.SelectedIndex=[]

        }
        else if (cbx.Name == "comboBox2")
        {
            //第二个选择框
            //给第一个赋值comboBox1.SelectedIndex=[]
        }
    }

lzj_999
lzj_999 回复zllxp1314: 你再试试,帖子下面的那个。
接近 2 年之前 回复
lzj_999
lzj_999 回复zllxp1314: 额 这个倒是忘了。
接近 2 年之前 回复
zllxp1314
zllxp1314 嗯嗯嗯,非常感谢,但是我要选第二个的话,让第一个现实对应数据就会报错,相当于它们会循环触发SelectedIndexChanged事件
接近 2 年之前 回复
lzj_999
lzj_999 回复zllxp1314: 获取 触发这个函数的combox对象。sender是object类型的,所以用as转换一下。
接近 2 年之前 回复
zllxp1314
zllxp1314 能解释下ComboBox cbx = sender as ComboBox;这句的意思吗?
接近 2 年之前 回复
lzj_999
lzj_999   2016.01.28 11:33

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox cbx = sender as ComboBox;
if (cbx.Name == "comboBox1")
{
//第一个选择框
if (comboBox2.SelectedIndex!=[])
{
//给第二个赋值comboBox2.SelectedIndex=[]
}

    }
    else if (cbx.Name == "comboBox2")
    {
        //第二个选择框
        if ( comboBox1.SelectedIndex!=[])
        {
            //给第一个赋值comboBox1.SelectedIndex=[]
        }

    }
}

加一个判断或加一个bool型在外面就行了吧

lzj_999
lzj_999 回复zllxp1314: 这么理解也行,不过comboBox2也得写个方法。我写的意思是两个共用一个方法。不客气。
接近 2 年之前 回复
zllxp1314
zllxp1314 ComboBox cbx = sender as ComboBox;在comboBox1_SelectedIndexChanged这个事件里面是不是只能是comboBox1,不可能为comboBox2,所以后面的if是没有意义的,我想的是能不能用事件委托来解决,但是不熟悉,非常感谢你的回答
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!