如图,datagridview控件数据框中蓝色如何去掉,鼠标移到别的数据上点击显示蓝色的效果如何去掉
dataGridView1.DefaultCellStyle.SelectionBackColor = dataGridView1.DefaultCellStyle.BackColor;
dataGridView1.DefaultCellStyle.SelectionForeColor = dataGridView1.DefaultCellStyle.ForeColor;
dataGridView1.Enabled=false;
方法
/// <summary>
/// 扩展方法
/// </summary>
public static class Extensions
{
/// <summary>
/// DataGridView鼠标右键点击行显示右键菜单
/// </summary>
public static void SetRightButtonDownShowContextMenuStrip(this DataGridView dgv, ContextMenuStrip cms, DataGridViewCellMouseEventArgs e)
{
//点击的是鼠标右键 且 点击行属于DataGridView的单元格的行(标题行的索引为-1)
if (e.Button == MouseButtons.Right && e.RowIndex >= 0)
{
if (!dgv.Rows[e.RowIndex].Selected)//该行没有被选中
{
dgv.ClearSelection();//清除当前选中的行
dgv.Rows[e.RowIndex].Selected = true;//设置选中行
}
cms.Show(Control.MousePosition.X, Control.MousePosition.Y);//显示右键菜单
}
}
}
调用
private void dgv_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
dgv.SetRightButtonDownShowContextMenuStrip(cms, e);
}
通过设置 DataGridView 的 SelectionMode 属性为 FullRowSelect 可以取消单元格的点击效果,鼠标移动到其它行时也不会高亮该行。具体操作如下:
打开 WinForm 界面设计器,在 Properties 窗口中找到 DataGridView 控件,找到 SelectionMode 属性,并将其值设置为 FullRowSelect。
在代码中设置 SelectionMode 属性,方法如下:
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
这样就能够取消单元格的点击效果和鼠标移动高亮效果了。