c# - 如何在不按 Tab 的情况下强制 DataGridView 当前单元格轮廓

标签 c# winforms user-interface datagridview

是否有某种方法可以使 DataGridView 的当前单元格始终具有按下 Tab 按钮时出现的虚线边框?我注意到,如果您按过一次 Tab 按钮,当前单元格周围总是有边框,但我希望从一开始就有该边框,而不必按 Tab 按钮。

目前我正在以编程方式发送 Tab 键,如下所示:

SendKeys.Send("{TAB}");

但这很糟糕,如果有的话,我宁愿有一个合适的解决方案。

编辑: 我忘了提及 SelectionMode 设置为 FullRowSelect 并且我不打算更改它。我希望当前单元格周围的边框轮廓以及突出显示的整行。

最佳答案

创建一个新类以继承 DataGridView 并覆盖 ShowFocusCues 属性 - 将 True 返回为始终显示焦点矩形或 False从不显示它。如果您想随意更改它,您甚至可以添加一个公共(public)属性来公开它。

public class DataGridViewFocused : DataGridView
{
    public bool ShowFocus { get; set; }

    protected override bool ShowFocusCues
    {
        get
        {
            return this.ShowFocus;
        }
    }
}

DataGridViewFocused dataGridView1 = new DataGridViewFocused();
dataGridView1.ShowFocus = true;

注意:这只会关注 CurrentCell,因为这就是它的行为方式。因此,即使设置了 FullRowSelect,也只有突出显示的行中选定的单元格之一才会获得焦点。

关于c# - 如何在不按 Tab 的情况下强制 DataGridView 当前单元格轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35282436/

相关文章:

vb.net - 创建一个在另一个线程上运行的进度条,同时在主线程中保持计算

java - 基于Windows的应用程序通过JAVA中的变量访问对象

java - 如何使用Java创建网络图片

c# - 如何获取实现给定接口(interface)的所有加载类型的所有实例?

c# - 如何在 C# 控制台程序中使用 Reduce() 方法并转换假分数

c# - winforms c# 中的静态属性

c# - Winforms IoC 容器 - 如何使用 Presenter 工厂处理具体类型

c# - 使用 Java 读取 REST 服务

c# - .cs 文件是否可以覆盖已编译的 Asp.net 站点的 bin 文件中的代码?

user-interface - 单选按钮与真/假/空选项的复选框