gpt4 book ai didi

.NET 数据 GridView : Remove "current row" black triangle

转载 作者:行者123 更新时间:2023-12-03 20:06:07 24 4
gpt4 key购买 nike

在 DataGridView 中,即使您将网格设置为只读,在当前行显示的行标题处也会有一个黑色三角形。

我想避免显示它,也想避免由三角形引起的那些单元格的大填充。我猜填充是由三角形引起的,因为单元格的填充为 0。

这样做有可能吗?如何?

谢谢!

编辑

这是创建行标题文本的方式:

for (int i = 0; i < 5; i++)
{
DataGridViewRow row = new DataGridViewRow();
row.HeaderCell.Value = headers[i];
dataGridView1.Rows.Add(row);
}

headers它是一个简单的字符串数组。 ( string[] )

最佳答案

  • 如果您想保留行标题而不是隐藏它们,那么您可以使用单元格填充将三角形推到视线之外:
    this.dataGridView1.RowHeadersDefaultCellStyle.Padding = 
    new Padding(this.dataGridView1.RowHeadersWidth);
  • 如果您使用行标题文本并希望保持可见,您需要使用一些自定义绘画 - 幸好非常简单。在上面的代码之后,简单地附加到 RowPostPaint 事件,如下所示:
    dataGridView1.RowPostPaint += 
    new DataGridViewRowPostPaintEventHandler(dataGridView1_RowPostPaint);

    在 RowPostPaint 方法中:
    void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
    {
    object o = dataGridView1.Rows[e.RowIndex].HeaderCell.Value;

    e.Graphics.DrawString(
    o != null ? o.ToString() : "",
    dataGridView1.Font,
    Brushes.Black,
    new PointF((float)e.RowBounds.Left + 2, (float)e.RowBounds.Top + 4));
    }

    正如丹尼利指出的那样使用 Brushes.Black以上将覆盖任何现有更改,因此最好使用画笔:
    new SolidBrush(dataGridView1.RowHeadersDefaultCellStyle.ForeColor)
  • 关于.NET 数据 GridView : Remove "current row" black triangle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5825088/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com