【问题标题】:Winform DataGrid with detail, what is the best way详细的Winform DataGrid,最好的方法是什么
【发布时间】:2011-09-01 19:38:21
【问题描述】:

我对 c# 和 Winforms 还很陌生,我想知道以下屏幕设计的最佳方法是什么。 我有一个包含 Datagrid 的窗口,它是只读的。在网格下方,我有不同字段(文本框、组合框、复选框)中记录的详细信息。 我想要的是当用户点击数据网格中的一个项目时,数据将显示在详细信息字段中。 这部分很简单,但我希望能够自动更新字段,这意味着,我宁愿不必按下保存按钮。 假设我单击数据网格中的一个项目,更改详细信息字段中的一些值,然后单击数据网格中的另一个项目,然后我还想在记录更新之前执行一些验证和计算。 我最初的想法是获取“新建”、“编辑”、“保存”操作的按钮并相应地锁定和解锁字段并保留一个标志以知道我是否需要插入或更新数据,但后来我意识到我宁愿没有那些按钮并自动执行保存。 是否有任何样品可以满足我的要求? 另外,你们会使用内置的数据绑定功能还是只在代码中使用数据集对象?

【问题讨论】:

    标签: c# winforms datagrid


    【解决方案1】:

    很常见的场景。

    在选定的网格行更改时,您知道应该将哪个数据行绑定到其他控件。当相同的事件再次发生时,您验证并保存或取消以防出错。

    【讨论】:

    • 那么您是否建议在我的控件中使用数据绑定?
    • 你明白了 :) 数据绑定或手动设置并从这些备用控件中检索数据。这有点风格和偏好的问题,在 windows 窗体中我可能会去手动设置/获取,但这也取决于整个应用程序的设计......结果是一样的,两种情况下都可以处理验证。跨度>
    • 您知道我在哪里可以找到实现这种设计的示例代码/应用程序吗?我环顾四周,但我发现的唯一例子是无用的例子,没有达到我想要的......
    • 例子很多,找到这个,向下滚动自动同步主从,即使你的情况有点不同,你也应该得到你需要知道的;-)akadia.com/services/dotnet_databinding.html跨度>
    【解决方案2】:

    您可以使用 DataGridView.CellEndEdit 事件来获取新值和 DataGridView.CellBeginEdit 事件来获取旧值并在有任何变化时更新您的数据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-18
      • 2015-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      相关资源
      最近更新 更多