【发布时间】:2019-02-07 18:51:43
【问题描述】:
我一直坚持一个糟糕的设计。
我想创建一个自定义单元格选择对话框(用户从 dataGridView 中选择一个单元格,然后按下 OK 或 Cancel 按钮)以便我可以得到如下结果:
public string GetFile()
{
DialogResult dialogResult = _open.ShowDialog();
if (dialogResult == DialogResult.OK)
return _open.FileName;
else
return null;
}
这里的关键是,if 语句在 dialogresult 出现之前不会执行。
我开始做的是——创建一个新的表单ChooseFileFromDBForm : Form,嗯.. 很难弄清楚哪些类应该通知哪些类关于按钮单击(该表单中有一个网格视图和按钮)等等。 .
现在我认为这是一个糟糕的设计。我不能告诉你细节,因为它不会向你解释我选择了什么设计,但如果你愿意的话——我最后一次提交“糟糕的设计”在这里:github(ChooseFileFromDBForm.cs,DBFilePicker.cs 文件)
问题是 - 我如何创建自己的 DialogResult 东西 - 以便它等到用户选择一行/单元格(结果表中只有一列)并按下“确定”或“取消”按钮?
【问题讨论】:
-
您是否考虑过使用
InputBox并询问用户想要输入哪个单元格? -
@Symon 嗯,这是一个想法。但我需要的正是单元格选择对话框
-
您可以在他们单击
OK后将其添加到字符串中。就像string input = "<b>" + input + "</b>";一样简单 -
我的任务是完全执行单元格选择对话框或类似的操作。那么也许有一些从CommonDialog继承的正确方法?我真的很想看到好的例子。