winform中我想在DataGridView中自定义列的类型,想用DataGridView作为类型。
也就是说我想在DataGridView的单元格中显示一个小的DataGridView,这样在我单击小的DataGridView的单元格的时候能给出它所在的小格的行列号和在大格中的行列号。
用别的控件也行,只要能达到我想要的要求就行。
我对winform不太熟悉,在网上搜了一些自定义列的代码没弄懂,麻烦高手指导一下。拜谢了。级别不够,只能发100分的帖子,见谅。

解决方案 »

  1.   

    在事件里写个循环,填充行号。
    private void dataGridView1_CellMouseEnter(object sender, DataGridViewCellEventArgs e)    //填充行号
            {
                for (int i = 0, a = 1, j = dataGridView1.RowCount - 1; i < j; i++, a++)
                {
                    dataGridView1.Rows[i].Cells[0].Value = a;
                }
            }   
      

  2.   

    第一,我要的是图中的效果,不是单纯的要一个dataGrid的操作,我要大格中套小格。
    第二,你这个方法本身只是填充行号,这个我会的。我知道可以用合并单元格的方式达到我想要的效果,但是那样做和图片上不太一样,就是大行之间的间隔不好控制。并且还需要计算点击单元格的位置来换算成我想要的在大格中的行列值和在小格中的行列值。
      

  3.   

    补充:我本想继承DataGridViewColumn和DataGridViewCell去实现自定义列,但由于不太懂,调试不出来。期待高手给个例子什么的。
      

  4.   

    http://www.cnblogs.com/peterzb/archive/2009/05/29/1491891.html
    这个可以实现合并表格,,
    至于 cell变成 DataGridView 你看看LS代码好用不,,
      

  5.   

    我试了下在datagridview增加combobox的方法去添加第二个datagridview,结果不行,新的datagridview2根本就填不到第一个datagridview。
    现在能行的办法只能是合并单元格了。
    http://www.cnblogs.com/peterzb/archive/2009/05/29/1491891.html
      

  6.   

    我倒是有一个思路,首先是在datagridview中每个单元格添加combobox,然后在combobox下拉菜单中添加datagridview,这样的话是变相的实现了你要求。
    http://apps.hi.baidu.com/share/detail/15058893
    http://download.csdn.net/source/1364935
    你可以研究下
      

  7.   


    我做到了如上效果,没有用嵌套表格,也没有合并表格,只是把列标题和行标题省去了,自己在旁边放了label
    根据表格的宽和高计算label应该有的宽或者高,然后控制各个控件的location位置。感谢各位费心了!