我的问题类似下面的这个描述
1.界面中有一个DataGridView控件,该控件有两列。一列为“省”,一列为“市”。两个列的类型均为DataGridView
ComboBoxColumn。
2.在构造时,把“省”列的Items初始化为“河南”、“河北”等省。
3.“市”列的Items不进行静态初始化,而是进行动态初始化。当选择“河南”时,“市”列的Items初始化为河南的市。
当选择“河北”时,“市”列的Items初始化为河北的市。问题:
1.先增加一行,河南 郑州。
2.然后准备增加一行,河北,石家庄。当选择“省”为河北后,按照上面的逻辑,要把“市”列的Items重新初始化为河北的市,如石家庄等。这时候,由于“市”列的Items中不包括“郑州”。所以,会出现异常,第一行的“市”列的值“郑州”不合法。“DataGridViewComboBoxCell值无效”。
3.该如何解决,敬请高手支招。

解决方案 »

  1.   

    http://blog.csdn.net/luochengbang/archive/2008/09/17/2937194.aspx
      

  2.   

    选择第二列时判断对应行的第一列的cellvalue值,重新设置combobox的items,这样不知是否可以同样达到楼主的要求
      

  3.   

    我在DG中一般不用下拉列,而用下拉控件,当MOUSE点击时下拉控件就在该 CELL 中显示(当然要根据CELL调整下拉控件的大小)
      

  4.   


    public partial class Form1 : Form
        {
            //public Form1()
            //{
            //    InitializeComponent();
            //}        string[] province = { "HeBei","HeNan" };        public Form1()
            {
                InitializeComponent();            DataGridViewComboBoxColumn col1 = (DataGridViewComboBoxColumn)(dataGridView1.Columns["colProvince"]);
                foreach (string s in province)
                {
                    col1.Items.Add(s);
                }
            }       
        }
    像这样动态绑定数据吧,然后再对col1添加一个联动事件,和col2关联起来,这样你就可以任意的选择col1的值鸟!