Dot-Net
.NET DataGridView:刪除“目前行”黑色三角形
在 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)); }正如 Dan Neely 指出的那樣,使用
Brushes.Black上述內容將覆蓋任何現有更改,因此最好使用畫筆:new SolidBrush(dataGridView1.RowHeadersDefaultCellStyle.ForeColor)