如何禁止combobox控件 选择修改。(别告我 dropdownlist)
-----------------------------------------------
比如性别字段,我用组合框显示(已经设成dropdownlist了)。
这样修改方便,直接选择,不用输入了。
但是,当单据审核后,如何禁止用户修改呢?
我如果设置enabled为 false,虽然不能修改了,但是,效果太不好。
我想实现,正常的显示(不是灰显),但是用户不能通过选择的方式进行修改。
如何实现呢?

解决方案 »

  1.   

    比如说你可以事先把selectedIndex记录下来,随便你记录在viewstate或者session等等里面。那么你在combobox的selectedIndexChanged事件里面编程吧,然后用户选择后会触发这个事件,你在这个事件里把原来的值取出来,改回去。当然这还需要一个bool型的变量,以便判断是不是可以被修改。比如flag=true(审核前),flag=false(审核后)
      

  2.   

            int cmb_index = 3;
            // 触发SelectionChangeCommitted事件
            private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e)
            {
                comboBox1.SelectedIndex = cmb_index;
            }
      

  3.   

    第一种方法:
    将隐藏的Label显示
    提交审核后 将comboBox1隐藏 用Label显示选中的信息第二种方法:
    static int i = 0;  //判断是否已审核
            static int index = 0;  //保存审核之前已经选好的索引值
            private void button1_Click(object sender, EventArgs e)
            {
                i = 1;  //表示已经审核了
            }
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (i == 1)
                {
                    comboBox1.SelectedIndex = index;
                }
                else
                {
                    index = comboBox1.SelectedIndex;
                }
            }
      

  4.   

    呵呵,没有这个属性。
    vb6有个locked属性,就是这个功能,但是.net中没有了。