Часть 1
84
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
// щелчок на WEB-ссылке
private void linkLabel1_LinkClicked(object sender,
LinkLabelLinkClickedEventArgs e)
{
// System.Diagnostics.Process.Start("IEXPLORE.EXE",
// "http://kultin.ru");
string webRef = linkLabel1.Text;
System.Diagnostics.Process.Start(webRef);
}
}
}
TaskDialog
В приложениях, работающих в Microsoft Windows Vista и более
поздних версиях, для вывода сообщений можно использовать
диалог TaskDialog
(рис. 1.19). Следующая программа, ее форма
приведена на рис. 1.20, а текст — в листинге 1.18, показывает,
как это сделать.
Примеры и задачи
85
Рис. 1.19. Пример сообщения,
выведенного при помощи TaskDialog
Рис. 1.20. Форма программы TaskDialog Demo
Листинг 1.18. Модуль формы программы TaskDialog Demo
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
Часть 1
86
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsFormsApplication1
{
class SimpleTaskDialog
{
[DllImport("comctl32.dll", CharSet = CharSet.Unicode,
EntryPoint = "TaskDialog")]
static extern int _TaskDialog(IntPtr hWndParent,
IntPtr hInstance, String pszWindowTitle,
String pszMainInstruction, String pszContent,
int dwCommonButtons, IntPtr pszIcon, out int
pnButton);
[Flags]
public enum TaskDialogButtons
{
OK = 0x0001,
Cancel = 0x0008,
Yes = 0x0002,
No = 0x0004,
Retry = 0x0010,
Close = 0x0020
}
public enum TaskDialogIcon
{
Information = UInt16.MaxValue - 2,
Warning = UInt16.MaxValue,
Stop = UInt16.MaxValue - 1,
Question = 0,
SecurityWarning = UInt16.MaxValue - 5,
Примеры и задачи
87
SecurityError = UInt16.MaxValue - 6,
SecuritySuccess = UInt16.MaxValue - 7,
SecurityShield = UInt16.MaxValue - 3,
SecurityShieldBlue = UInt16.MaxValue - 4,
SecurityShieldGray = UInt16.MaxValue - 8
}
public enum TaskDialogResult
{
None, OK, Cancel, Yes, No, Retry, Close
}
private static TaskDialogResult ShowInternal(
IntPtr owner, string text, string instruction,
string caption, TaskDialogButtons buttons,
TaskDialogIcon icon)
{
int p;
if (_TaskDialog(owner, IntPtr.Zero, caption,
instruction, text, (int)buttons,
new IntPtr((int)icon), out p) != 0)
throw new InvalidOperationException
("Something weird has happened.");
switch (p)
{
case 1: return TaskDialogResult.OK;
case 2: return TaskDialogResult.Cancel;
case 4: return TaskDialogResult.Retry;
case 6: return TaskDialogResult.Yes;
case 7: return TaskDialogResult.No;
case 8: return TaskDialogResult.Close;
default: return TaskDialogResult.None;
}
}
Do'stlaringiz bilan baham: |