datagridviewbuttoncell 只显示文字,不需要背景和边框
时间: 2023-08-01 10:00:48 浏览: 154
要实现DataGridView中的Button列只显示文字,不需要背景和边框,可以通过自定义DataGridViewButtonCell的绘制来实现。
首先,继承DataGridViewButtonCell类,重写其Paint方法。在Paint方法中,使用Graphics对象的FillRectangle方法来填充背景色,但不设置任何背景色,使其透明。然后使用DrawString方法来绘制按钮上的文字,从而只显示文字。
以下是实现此功能的示例代码:
```c#
using System.Windows.Forms;
using System.Drawing;
public class CustomDataGridViewButtonCell : DataGridViewButtonCell
{
protected override void Paint(Graphics graphics,
Rectangle clipBounds, Rectangle cellBounds, int rowIndex,
DataGridViewElementStates elementState, object value,
object formattedValue, string errorText,
DataGridViewCellStyle cellStyle,
DataGridViewAdvancedBorderStyle advancedBorderStyle,
DataGridViewPaintParts paintParts)
{
base.Paint(graphics, clipBounds, cellBounds, rowIndex, elementState,
null, null, errorText, cellStyle, advancedBorderStyle, paintParts);
var sf = new StringFormat
{
LineAlignment = StringAlignment.Center,
Alignment = StringAlignment.Center
};
graphics.DrawString(formattedValue.ToString(), cellStyle.Font,
Brushes.Black, cellBounds, sf);
}
}
```
然后,在需要使用的DataGridView的ColumnAdded事件中,设置该列的单元格类型为自定义的CustomDataGridViewButtonCell:
```c#
private void dataGridView1_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
{
if (e.Column is DataGridViewButtonColumn)
{
e.Column.CellTemplate = new CustomDataGridViewButtonCell();
}
}
```
这样,DataGridView中的Button列就只会显示文字,没有背景和边框了。
阅读全文