如何隐藏DataGridView控件上的当前单元格位置?
问题描述:
我有一个DataGridView控件,允许多行选择。我遇到的问题是显示选择的当前位置(请参阅下图)。我想不显示当前单元格位置。那可能吗?如何隐藏DataGridView控件上的当前单元格位置?
我想它看起来像,而不是下面...
答
从DataGridView
导出类并覆盖ShowFocusCues
属性。
- 返回
True
显示焦点矩形。 - 返回
False
隐藏焦点矩形。 - 返回
base.ShowFocusCues
保持默认行为。
您还可以公开属性来动态更改它。
public class DataGridViewFocused : DataGridView
{
public bool? ShowFocus { get; set; }
protected override bool ShowFocusCues
{
get
{
return this.ShowFocus.HasValue? this.ShowFocus.Value : base.ShowFocusCues;
}
}
}
它添加到您的项目,以取代现有DataGridView
可以像浏览到您的Form.Designer.cs
文件,并替换以下简单:
public System.Windows.Forms.DataGridView dataGridView1;
this.dataGridView1 = new System.Windows.Forms.DataGridView();
有:
public DataGridViewFocused dataGridView1;
this.dataGridView1 = new DataGridViewFocused();
从那里你总是可以通过添加隐藏焦点矩形下面一行:
this.dataGridView1.ShowFocus = false;
或者,例如,如果你想隐藏多选活动期间矩形只有,你可以这样做以下:
private void DataGridView1_SelectionChanged(object sender, EventArgs e)
{
if (this.dataGridView1.SelectedCells.Count > 1)
{
this.dataGridView1.ShowFocus = false;
}
else
{
this.dataGridView1.ShowFocus = null;
}
}
相关:[如何在不按Tab键的情况下强制DataGridView当前单元格轮廓](https://stackoverflow.com/q/35282436/3773066)。我的解决方案应该适合你,只需将'ShowFocus'设置为'false'即可。 – OhBeWise
我花了很长时间才将所有从一个DataGridView设置到另一个DataGridView的内容复制到另一个DataGridView中,但这完全按照我的意愿工作。感谢您为简单的微软做了一个艰苦的过程。 - OhBeWise,添加一个答案获得黄金。 ;) –