none
.NET,c/s下,datagridview控件中,怎么将标题行设为最后一啊 RRS feed

  • 问题

  • .NET,c/s下,datagridview控件中,怎么将标题行设为最后一啊

    默认标题行index为-1; 假如有10条数据,我想让标题行应在最后一行;怎么做啊


    大其心,可容天下之物; 虚其心,可受天下之善;

    • 已编辑 lfofiug 2011年12月27日 6:38
    2011年12月27日 6:25

答案

  • dear

    啥是标题行?你指的是鼠标停止的位置吗?

    1.若你有设置DataSource,你就设置DataSource.Position=DataSource.Count-1

    2.若没有DataSource,参考以下有没有你要的

    http://blog.csdn.net/fangxinggood/article/details/1561011#A1


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    • 已标记为答案 lfofiug 2012年1月9日 2:40
    2011年12月27日 18:08
  • Hi lfofiug,
    欢迎来到MSDN论坛!

    您指的标题行是不是DataGridView控件的每一列的HeadText?

    默认标题行的并不属于DataGridViewRowCollection内; 从这种角度来看,并不存在标题行的index一说.

    您可以尝试访问dataGridView.Row[-1], 会引发索引无效的异常. 并且,正常情况下,索引都应当是非负值的.

    请问您指的index 为-1,是什么意思呢? 

     

    如果您是想把"HeadText"移到列尾,可以考虑下面的方案:

            private void Form1_Load(object sender, EventArgs e)
            {
                this.dataGridView1.ColumnHeadersVisible = false;
                for (int i = 0; i < 10; i++)
                {
                    this.dataGridView1.Rows.Add();
                    dataGridView1.Rows[i].Cells[0].Value = "Test" + i;
                    dataGridView1.Rows[i].Cells[1].Value = i;                
                }
    
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].ReadOnly = true;
                for(int i =0;i<2;i++)
                {
                    dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[i].Value = "Column"+i;
                    dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[i].Style = dataGridView1.ColumnHeadersDefaultCellStyle;           
                }    
    
            }
    

     

    期待您的回复!

    如果您还有任何问题,也请您告诉我们!

    谢谢!

    Yoyo.


    Yoyo Jiang[MSFT]
    MSDN Community Support | Feedback to us
    • 已标记为答案 lfofiug 2012年1月9日 2:40
    2011年12月30日 7:16
    版主

全部回复

  • dear

    啥是标题行?你指的是鼠标停止的位置吗?

    1.若你有设置DataSource,你就设置DataSource.Position=DataSource.Count-1

    2.若没有DataSource,参考以下有没有你要的

    http://blog.csdn.net/fangxinggood/article/details/1561011#A1


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    • 已标记为答案 lfofiug 2012年1月9日 2:40
    2011年12月27日 18:08
  • Hi lfofiug,
    欢迎来到MSDN论坛!

    您指的标题行是不是DataGridView控件的每一列的HeadText?

    默认标题行的并不属于DataGridViewRowCollection内; 从这种角度来看,并不存在标题行的index一说.

    您可以尝试访问dataGridView.Row[-1], 会引发索引无效的异常. 并且,正常情况下,索引都应当是非负值的.

    请问您指的index 为-1,是什么意思呢? 

     

    如果您是想把"HeadText"移到列尾,可以考虑下面的方案:

            private void Form1_Load(object sender, EventArgs e)
            {
                this.dataGridView1.ColumnHeadersVisible = false;
                for (int i = 0; i < 10; i++)
                {
                    this.dataGridView1.Rows.Add();
                    dataGridView1.Rows[i].Cells[0].Value = "Test" + i;
                    dataGridView1.Rows[i].Cells[1].Value = i;                
                }
    
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].ReadOnly = true;
                for(int i =0;i<2;i++)
                {
                    dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[i].Value = "Column"+i;
                    dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[i].Style = dataGridView1.ColumnHeadersDefaultCellStyle;           
                }    
    
            }
    

     

    期待您的回复!

    如果您还有任何问题,也请您告诉我们!

    谢谢!

    Yoyo.


    Yoyo Jiang[MSFT]
    MSDN Community Support | Feedback to us
    • 已标记为答案 lfofiug 2012年1月9日 2:40
    2011年12月30日 7:16
    版主