datagridview有两个combobox列,其中一列的数据要根据另一列的值来决定要显示的数据。例如省市联动,A列已经选定某省,B列显示该省下的所有市名。现在省数据变动以后市数据随之变化已经实现,目前的问题是再打开表单的时候,省的combobox列显示正常,但是市的combobox不显示数据。主要是市的combobox是绑定列,但是数据源是根据省动态生成的,然后指定给市的combobox作为数据源。这个问题该如何解决呢?

解决方案 »

  1.   

    貌似你用原装的combobox列没戏,因为datasource是绑在列上的,不能随动,可以解决的方法很多,最笨的方法做个只有一个combobox的窗体(无边框),触发单元格点击时弹出(在单元格位置上),想怎么控制都可以。网上很多人采用定制combobox列的方式反而更麻烦。
      

  2.   

    简单啊,省的加载数据后调用一下省的change事件,在这个事件里执行市的加载即可啊,而且市的数据的抓取用国家、省两个参数即可了啊。然后数据加载到combox写成函数即可啊。
      

  3.   

    如果你喜欢用多线程,那就更简单了。直接异步加载省、市全部数据,然后省的数据change事件里调用市的加载,当然加载前市的数据用省过滤一下即可。
    所有缓存数据用DataTable缓存,也好操作。
      

  4.   

    多谢各位的回复,selectchange事件我处理过了,这个是没有问题的。就是把表单关闭再进入的时候,市 的那一列不显示数据了。现在想知道表单再次打开的时候,何时为 市 这个combobox 列绑定动态数据源。