|
|
1
6
也许你想重新思考你的互动模式?你将如何向用户解释这一点?他们有一个内部化的计算机程序工作模式,你最好有一个很好的理由打破这个模式。他们知道模态对话,他们知道非模态对话,他们知道检查员。选择一个,然后应用它。
[解释后,替换] 在模式对话框中显示进度条有什么问题?确定后立即开始处理 是否单击,禁用所有按钮,仅保持“取消”按钮处于活动状态?如果需要很长时间,用户可能希望中止该操作。仅在完成处理后关闭对话框。 |
|
|
2
1
您可以使用无模式对话框,然后让主UI检查用户是否单击了Finished按钮。如果无模式对话框已打开,但尚未单击“完成”,则不响应主窗体中的任何用户操作。。。 |
|
|
3
1
这只是一个糟糕的想法——这是完全不标准的行为,你要通过各种各样的手段来让一些东西工作起来,这会让你的用户非常困惑。 |
|
|
4
1
像这里提到的大多数其他答案一样,您正在实现非标准的UI元素,这会让大多数用户感到困惑。 如果对话框保持可见只是为了提供对数据的只读访问,那么为什么不让对话框窗口正常关闭,并使用对话框窗口中的数据在应用程序中打开一个侧栏窗口? 如果对话框保持可见,允许用户继续在其中进行更新,那么也许,它一开始就不应该是模态的。
|
|
|
5
0
我会在你的应用程序的侧面或底部制作一个弹出式按钮,将其他东西推到一边。如果它位于用户可能需要查看或与之交互的其他内容之上,那么它只会惹恼他们。 |
|
|
6
0
我发现在交互的阻塞阶段在主UI线程上显示一个不可见的模式对话框非常有效。 隐藏模式对话框设置(因此不可见):ShowInTaskBar=false,FormBorderStyle=None,size={0,0},不透明度=0%,StartupPosition=CenterParent。 隐藏对话框使用ShowDialog显示在UI线程上。可见对话框显示在单独的STA线程上。在主UI线程上调用hiddenDialog.ShowDialog之前,将启动该线程。 当visible对话框希望初始阻塞状态完成时,它会隐藏hiddenDialog。这将阻止主UI线程阻塞。 重要的代码位:
|