【问题标题】:c# pass parameters from a previous actionc# 传递上一个动作的参数
【发布时间】:2017-05-29 07:37:50
【问题描述】:

我正在编写一个应用程序,它将有一个 datagridview 控件和 4 个文本框。

应用程序的一个要求是,当用户双击数据网格中的一行时,4 个文本框会用相应的文本框填充数据 -> 这已经完成并且正在工作。用户编辑完字段并单击“确定”后,它们将保存在 datagridview 中。

另一方面,如果用户单击一个名为“添加寄存器”的按钮,则会启用相同的按钮,一旦他们单击“确定”,就会创建一个包含文本框中数据的新寄存器。

问题是我不知道怎么做,而且我还没有找到任何关于知道我应该编辑一行(以及哪一行)或在单击“确定”时添加一个新行的信息。

换句话说:当用户按下“确定”时,我如何知道我是来自“编辑”请求还是“添加注册”请求?

谢谢!

【问题讨论】:

  • 什么是“OK”?是按钮吗?您使用的是什么 GUI 框架?表格? WPF?还有什么?如果是 WinForms,对象具有您可以使用的 .Tag 属性。或者,您可以在开始添加/编辑时将当前编辑类型存储在类对象中。
  • datagridview 有一个名为 edit 的属性。如果为 true,则会向 DGV 添加一个空白行,以便可以编辑新数据。因此,如果所选行是 DGV 的最后一行,则添加该行。否则,您修改选定的行。

标签: c# datagridview


【解决方案1】:

欢迎来到 StackOverflow。 实现这一点的最简单方法是在表单上添加一个布尔字段,例如布尔是编辑。当用户双击 DataGridView 中的一行时(您说您正在为其工作的处理程序),然后将该字段设置为 true。在添加注册按钮处理程序中,将该字段设置为 false。 现在在您的 OK 处理程序中,您只需检查 isEdit 字段的值即可知道您是在添加还是在编辑!

我已经做了很多(非常棒!)这样的 DataGridView 表单。就我个人而言,我不喜欢将表单与数据输入结合起来。我更喜欢让我的 DataGridView 表单完全只读,然后当用户单击编辑或添加按钮时,我会显示一个单独的模式表单来处理数据输入。从模态表单中保存时,我刷新了网格。

HTH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-09
    • 2020-03-20
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2012-09-22
    • 1970-01-01
    相关资源
    最近更新 更多