DataGridView确保应用程序的广泛一致性

时间:2009-05-19 07:26:15

标签: winforms datagridview

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

我创建了一个基本查找器表单,其中包含一些属性和ok / cancel按钮+他们的点击事件。我被困在datagridview上。在我们的一个finder对话框中,确保所有datagridviews共享相似特征的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

今天我实现了一个来自DataGridView的自定义网格(DataGridViewFinder)。此网格仅适用于我们的查找器对话框。网格具有默认属性集,以便与我们所有其他finder网格一致。另外,因为我知道这种类型的网格只会出现在finder对话框中,所以我已经覆盖了一些会在base 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);
    }
}