Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms DataGridView确保应用程序范围的一致性_Winforms_Datagridview - Fatal编程技术网

Winforms DataGridView确保应用程序范围的一致性

Winforms DataGridView确保应用程序范围的一致性,winforms,datagridview,Winforms,Datagridview,在我们的应用程序中,我们将有几个finder对话框。finder对话框的UI很简单(文本框、datagridview结果、确定按钮、取消按钮)。不同对话框之间唯一真正的变化是一些标签文本和网格绑定源。我们希望强制执行某些属性(如全行选择和只读模式)和事件(如单击和双击),以便当有人想要添加对话框时,我们知道用户将获得一致的行为,因为该对话框实现的属性和事件与应用程序中的其他每个对话框实现的属性和事件相同 我创建了一个基本查找表,其中包含一些属性和“确定/取消”按钮及其单击事件。我被困在datag

在我们的应用程序中,我们将有几个finder对话框。finder对话框的UI很简单(文本框、datagridview结果、确定按钮、取消按钮)。不同对话框之间唯一真正的变化是一些标签文本和网格绑定源。我们希望强制执行某些属性(如全行选择和只读模式)和事件(如单击和双击),以便当有人想要添加对话框时,我们知道用户将获得一致的行为,因为该对话框实现的属性和事件与应用程序中的其他每个对话框实现的属性和事件相同


我创建了一个基本查找表,其中包含一些属性和“确定/取消”按钮及其单击事件。我被困在datagridview上了。在一个finder对话框上,确保所有DataGridView共享相似特性的最佳方法是什么

如果不同对话框之间的唯一区别是某个标签的文本和datagridview的绑定源,为什么不为所有对话框使用相同的格式?您可以轻松地使用表单公开属性来控制这些差异。

今天,我实现了一个从DataGridView派生的自定义网格(DataGridViewFinder)。此网格仅适用于我们的finder对话框。网格具有默认属性集,因此它与所有其他查找器网格一致。另外,因为我知道这种类型的网格只会出现在finder对话框中,所以我已经覆盖了一些事件,这些事件将在基本finder上设置属性和调用方法

我喜欢这种方法,因为它可以确保当我在finder对话框中放置自定义网格时,某些属性和事件已经为我处理。将会有很多finder对话框,我想这会节省很多时间。有人认为这个实现有什么问题吗

protected override void OnEnter(EventArgs e)
{
    base.OnEnter(e);
    if (Parent is BaseFinder)
    {
        (Parent as BaseFinder).Mode = FinderMode.Ok;
    }
}

protected override void OnDoubleClick(EventArgs e)
{
    base.OnDoubleClick(e);
    if (Parent is BaseFinder)
    {
        (Parent as BaseFinder).btOk_Click(this, e);
    }
}

在网格上设置绑定数据源时,我不想丢失一些VisualStudio设计时的东西。也许我应该创建一个从DataGridView派生的网格,并强制执行这些属性和方法。