DataGridView行标题单元格文本可见性

时间:2018-10-11 02:36:44

标签: c# winforms datagridview

我的DataGridView应用程序中有一个WinForms。基本上,我想在那里输入一些2D数据或类似的东西。这意味着,我想同时命名列和命名行。所以我做到了。但是后来出现了问题。如果列名很好,则行名往往不可见。例如:

enter image description here

我用来以某种方式“美化” DataGridView的代码:

private void BeautifyTable(TableView tableView)
{
    foreach (DataGridViewRow row in tableView.Rows)
    {
        row.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
    }
    foreach (DataGridViewColumn col in tableView.Columns)
    {
        col.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
        col.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
        col.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
    }
}

TableView是我创建的一个类,它继承自DataGridView

所以现在我的问题是:有没有办法以某种方式使那些行名/标题以正常的方式显示(在这种情况下,它们是:s0, s1, s2..,但它们就像从左边切掉一样)侧面)。

P.S是否有“拉伸”列的好方法?我的意思是,如果我有10列,它们将填满整个DataGridView的宽度,但是如果我添加(我动态地这样做)5列,那么将有15列,但它们仍然适合,只是每列的宽度列会减少吗?

3 个答案:

答案 0 :(得分:0)

增加行标题的宽度:

dataGridView1.RowHeadersWidth = 
    dataGridView1.RowHeadersWidth * 2; // or another value

答案 1 :(得分:0)

通过在Form.cs [Design]的datagridview的属性中将RowHeadersVisible设置为False来隐藏那些箭头,或者只需添加以下代码即可。

Me.DataGridView1.RowHeadersVisible = False

答案 2 :(得分:0)

我自己找到了最佳答案。

您还可以为行标题设置WitdthSizeMode,如下所示:

tableView.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;

这就是结果:

async and await