如何使用c#中的命令链接创建Windows 7样式的消息/对话框?

时间:2010-06-25 19:54:55

标签: c# .net messagebox

如何在C#中创建这些漂亮的消息/对话框(例如:http://i.msdn.microsoft.com/dynimg/IC123363.png)?

.NET Framework中是否有与MessageBox.Show类似的函数?

6 个答案:

答案 0 :(得分:8)

这是一个TaskDialog。它由Windows API Code Pack包装在托管类中。还有许多其他Vista和Win7特定的好东西。

答案 1 :(得分:4)

我总是犹豫提供代码项目链接,但我认为您正在尝试制作TaskDialog。还有一个声称提供WinForms TaskDialog的project on code.msdn.microsoft.com。 TaskDialog的更可靠来源是Windows API Code Pack

如果您需要支持WindowsXP或更旧的操作系统,请务必提供备用消息框,任务对话框是Windows Vista中的新功能。

答案 2 :(得分:2)

看看http://code.msdn.microsoft.com/WindowsAPICodePack 我不确定它是否包含您需要的功能,但它具有名为“Windows Vista和Windows 7任务对话框”的功能,也许这是您正在寻找的功能。

答案 3 :(得分:-1)

您可以创建自己的消息窗口窗体,显示您想要的内容并使用窗体显示

显示
MyMessageForm form = new MyMessageForm();
form.Show();

答案 4 :(得分:-1)

尝试使用任务对话框。它几乎与MessageBox类似。也许你会喜欢它。您只需要将windowsAPIcode Pack添加到您的参考中,然后按照我给出的链接上的说明进行操作。

这个网站会有很大的帮助。 http://www.developerfusion.com/article/71793/windows-7-task-dialogs/以下是一个示例:试一试!

               // Get reference to the dialog type.
               var dialogTypeName = "System.Windows.Forms.PropertyGridInternal.GridErrorDlg";
               var dialogType = typeof(Form).Assembly.GetType(dialogTypeName);

               // Create dialog instance.
               var dialog = (Form)Activator.CreateInstance(dialogType, new PropertyGrid());

               // Populate relevant properties on the dialog instance.
               dialog.Text = "Data Patch";
               dialogType.GetProperty("Details").SetValue(dialog, "Sample Text", null);
               dialogType.GetProperty("Message").SetValue(dialog, "Sample Text", null);

               // Display dialog.
               var result = dialog.ShowDialog();

请原谅我@MegaTron的不完整答案。我已经修改过了。我希望这个答案也有帮助

答案 5 :(得分:-2)

DevExpress是一个成熟的第三方Windows窗体提供商,如果您有兴趣,值得一看。