置换是/否/取消的MessageBox(C#)(Replacement for yes/no/can

2019-08-17 16:20发布

我在找一个体面的替代标准的Windows YES / NO或YES / NO / CANCEL消息框。

我经常看到的方式,如滥用这些标准的对话框:“要以纯文本格式保存回答YES,或保存在HTML回答NO”。 显然,文本应为“另存为:与”按钮应被标记为‘文本’和‘HTML’。 这不是一个是/否的问题正在被问过了,虽然也可以表述这种方式,它不会是容易阅读和理解。

微软给出没有办法改变按钮上的文字。 还有就是要从头开始建立一个替代......证明通过使用上述的尴尬风格的应用程序的数量没有快速/简单的方法。

有没有免费的C#更换对话框或消息框在那里,让你至少包括:
-指定按钮的数量
-指定的文字出现在每个按钮
-指定默认按钮

我已经看过,并一直无法找到一个。

(我将建立一个自己,但我不是所有的功能齐全的控制应该有足够的行为很熟悉,因为我只需要/使用/知道一小部分的两个例子,我不使用:主题和国际化的我。需要的东西,我的同事也将要使用。)

Answer 1:

看看解剖的MessageBox CodeProject上。 该项目是一个有点过时,但它几乎是你在寻找什么,它不应该花太多更新。



Answer 2:

根据您的目标平台上,一个任务对话框可能是这样做的一个很好的方式。 有在任务对话框一个.NET包装的Windows API代码包 。 然而,这些仅提供在Windows Vista及以上的,而不是在XP或2003。



Answer 3:

坦率地说,这并不难,自己创建这样一个消息,我们有这样的事情,我们正在开发的当前应用程序的工作。

你需要的是会自动对齐您创建的任何按钮,按钮一的FlowLayout。 我们的API于是具有类似的信息(元组PARAMS <字符串的DialogResult> []按钮)

元组是包含两个值的辅助类。 该字符串是按钮的文本,该DialogResult的是一个当与按钮说文被点击我们的消息框返回。



Answer 4:

我同意弗兰克。 它不会太难创建自己的通用形式为您处理此。 没有进入代码,形式应做到以下几点

1)有一个属性来设置要显示给用户的消息。

2)有一个方法,用于将按钮,以2个参数,一个用于按钮文本,和一个用于对话结果

3)当显示形式时,其应该在模态对话框模式,使得直到被点击的选项中的一个,而应用程序的其余部分是不活动的。

所以,要创建一个另存为/不保存/取消,您将添加在步骤2中的3个按键,全部采用相应的按钮文本和对话的结果。

使用流布局,你应该能够得到它的正确显示不管消息的大小,或按钮的数量。



文章来源: Replacement for yes/no/cancel MessageBox (C#)