当前位置:  开发笔记 > 编程语言 > 正文

DataGridView显示行标题单元格

如何解决《DataGridView显示行标题单元格》经验,为你挑选了2个好方法。

我正在尝试显示一个链接到DataTable的简单DataGridView,我想最终将DataTable中的第一列作为DataGridView的行标题单元格.在这一点上,我将决定在行标题单元格中有任何值.我可以显示DataGridView包含我的所有行和列,以及列标题单元格,但没有行标题单元格.我检查了row.HeaderCell.Value中的值,我放在那里的数据就在那里.我检查row.HeaderCell.Displayed并且它是false,但这是只读的,所以我不能使它成为现实.如何显示行标题单元格?

这是我试图让它工作的简单示例:

        DataTable table = new DataTable();
        for (int i = 0; i<10; i++)
        {
            table.Columns.Add(new DataColumn("column-" + i));
        }

        for (int i = 0; i < 10; i++)
        {
            DataRow theRow = table.NewRow();

            for (int j = 0; j < 10; j++)
                theRow[j] = i + "-" + j;
            table.Rows.Add(theRow);

        }

        dataGridView1.DataSource = table;
        dataGridView1.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToDisplayedHeaders;
        int rowNumber = 1;
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            if (row.IsNewRow) continue;
            row.HeaderCell.Value = "Row " + rowNumber;
            rowNumber = rowNumber + 1;
        }
        dataGridView1.AutoResizeRowHeadersWidth(
            DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);

AMissico.. 9

如果将此代码放在构造函数中,它将无法工作.将代码移动到表单的Load事件中它应该可以正常工作.Windows.Forms和C#的一个常见问题是在构造函数中使用了不正确的初始化.在构造函数完成之后,才会完全创建许多控件.(我忘记了原因,但我认为这是因为尚未创建句柄.)如果Load按照Microsoft的建议在事件中初始化,则可以避免许多"解决方法" .



1> AMissico..:

如果将此代码放在构造函数中,它将无法工作.将代码移动到表单的Load事件中它应该可以正常工作.Windows.Forms和C#的一个常见问题是在构造函数中使用了不正确的初始化.在构造函数完成之后,才会完全创建许多控件.(我忘记了原因,但我认为这是因为尚未创建句柄.)如果Load按照Microsoft的建议在事件中初始化,则可以避免许多"解决方法" .



2> 小智..:

只需调用ToString(),如下所示

 row.HeaderCell.Value = ("Row " + rowNumber).ToString();

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有