我有一个datagridview,它的唯一目的是显示数据库中的信息。出于某种原因,我还添加了额外的列,每一行都有“查看”链接。所以基本上datagridView的目的只是让用户单击“查看”链接。仅此而已。这就是为什么我不想要“突出显示”的原因。我一直在寻找这个答案,但我仍然没有找到正确的答案。这是可能的还是不可能的?
vd2z7a6w1#
这就是你的做法:
dataGridView1.Rows.Add("a1");//Just for testing dataGridView1.DefaultCellStyle.SelectionBackColor = Color.White; dataGridView1.DefaultCellStyle.SelectionForeColor = Color.Black; //This is the text color
如果默认的话,你可以选择任何其他颜色,但是只需要把SelectionBackColor设置为datagrid的背景色。
SelectionBackColor
gz5pxeao2#
我发现的最简单的方法是:
dataGridViewCellStyle.SelectionBackColor = System.Drawing.Color.Transparent; dataGridViewCellStyle.SelectionForeColor = System.Drawing.Color.Transparent;
erhoui1w3#
删除选择显示的最简单方法是设置选择颜色以匹配单元格背景颜色:
dataGridView1.DefaultCellStyle.SelectionBackColor = dataGridView1.DefaultCellStyle.BackColor;
引用现有的背景颜色意味着您没有硬编码颜色。
jmo0nnb34#
您可以尝试以下解决方案,这样就不必在每个新屏幕上设置选区背景色。1.创建应用程序要使用的自定义DataGridView。1.在构造函数中,可以处理DataGridView的ColumnStateChanged事件,并将HeaderCell的Style重置为默认背景值:例如:
public class DataGridViewCustom : DataGridView { public DataGridViewSearch() : base() { InitializeComponent(); this.ColumnStateChanged += DataGridViewCustom_ColumnStateChanged; } private void DataGridViewCustom_ColumnStateChanged(object sender, DataGridViewColumnStateChangedEventArgs e) { DataGridView dataGridView = (DataGridView)sender; //Only update for full row selection mode. if (dataGridView.SelectionMode == DataGridViewSelectionMode.FullRowSelect) { e.Column.HeaderCell.Style.SelectionBackColor = dataGridView.ColumnHeadersDefaultCellStyle.BackColor; } } }
4条答案
按热度按时间vd2z7a6w1#
这就是你的做法:
如果默认的话,你可以选择任何其他颜色,但是只需要把
SelectionBackColor
设置为datagrid的背景色。gz5pxeao2#
我发现的最简单的方法是:
erhoui1w3#
删除选择显示的最简单方法是设置选择颜色以匹配单元格背景颜色:
引用现有的背景颜色意味着您没有硬编码颜色。
jmo0nnb34#
您可以尝试以下解决方案,这样就不必在每个新屏幕上设置选区背景色。
1.创建应用程序要使用的自定义DataGridView。
1.在构造函数中,可以处理DataGridView的ColumnStateChanged事件,并将HeaderCell的Style重置为默认背景值:
例如: