номер
Вы должны будете сделать пользовательскую форму с FormBorderType = FixedDialog
.
Вот небольшой урок:
Создание диалоговых окон в .NET
Джеймсом Д. Мюрреем 12 июня 2007 года, под 70-526
Сертификационный экзамен Microsoft: 70-526 (MCTS)
Цель: создание и использование пользовательских диалоговых окон в приложениях Windows Forms.
Язык: Visual Basic 2005 (нажмите здесь для версии C # этой записи)
Я помню, как впервые мне нужно было создать диалоговое окно в приложении .NET, которое я писал на C #. Будучи давним программистом на Visual Basic, я предполагал, что это легко сделать с помощью шаблона диалогового окна, включенного в Visual Studio.NET. К моему удивлению, такой шаблон формы для C # не существовал, хотя для Visual Basic 2005 он существует. После просмотра нескольких книг и веб-страниц, заполненных информацией о программировании Windows Forms 2.0, мне стал очевиден базовый набор шагов для преобразования вручную Форма .NET в диалоговом окне Windows:
Шаг 1. Добавьте форму в ваш проект .NET и назовите ее «DialogBoxForm».
Шаг 2. Отпустите две кнопки в правой нижней части формы и назовите их «OKButton» и «CancelButton».
Шаг 3: Измените следующие свойства формы, чтобы настроить ее внешний вид и поведение так, чтобы она была похожа на стандартное диалоговое окно:
Property Value Description
-----------------------------------------------------------------------------------------------------------------------------
AcceptButton OK button instance Causes form to return value DialogResult.OK. Only used on modal dialog boxes.
CancelButton Cancel button instance Causes form to return value DialogResult.Cancel. Only used on modal dialog boxes.
FormBorderStyle FixedDialog Create a non-sizable form with no control box on the title bar.
HelpButton True The Help button appears in the caption bar next to the Close button. The ControlBox property must be True for these buttons to be visible.
MaximizeBox False Hide the Maximize button in the title bar.
MinimizeBox False Hide the Minimize button in the title bar.
ShowIcon False The title bar icon is not visible in a dialog box.
ShowInTaskBar False Do not indicate the presence of the form on the Windows Task Bar.
Start Position CenterParent The initial position of a dialog box is over its parent form.
Size As Needed The fixed size needed for the dialog box.
Эти свойства можно установить с помощью окна «Свойства» для формы или с помощью кода, помещенного в событие загрузки формы:
Me.AcceptButton = OKButton
Me.CancelButton = CancelButton
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedDialog
Me.HelpButton = True
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.ShowInTaskbar = False
Me.ShowIcon = False
Me.StartPosition = FormStartPosition.CenterParent
Шаг 4. Добавьте в форму следующие обработчики событий нажатия кнопок:
Private Sub OKButton_Click(ByVal sender As Object, _ByVal e As EventArgs)
' User clicked the OK button
Me.DialogResult = Windows.Forms.DialogResult.OK
End Sub
Private Sub CancelButton_Click(ByVal sender As Object, _ByVal e As EventArgs)
' User clicked the Cancel button
Me.DialogResult = Windows.Forms.DialogResult.Cancel
End Sub
Шаг 5. Добавьте свойства, необходимые для перемещения данных в диалоговое окно и из него, как для любой формы:
Private _LoginName As String
Private _LoginPassword As String
Public Property LoginName() As String
Get
Return _LoginName
End Get
Set(ByVal value As String)
_LoginName = value
End Set
End Property
Public Property LoginPassword() As String
Get
Return _LoginPassword
End Get
Set(ByVal value As String)
_LoginPassword = value
End Set
End Property
Шаг 6: Показать диалоговое окно модально, вызвав ShowDialog () формы:
Public Sub ShowDialogBox()
Dim dialog As New DialogBoxForm
dialog.LoginName = "JDMurray"
dialog.LoginPassword = String.Empty
If dialog.ShowDialog() = Windows.Forms.DialogResult.OK Then
Debug.WriteLine("Login Name: " & dialog.LoginName)
Debug.WriteLine("Password: " & dialog.LoginPassword)
Else
' User clicked the Cancel button
End If
End Sub
Шаг 7. Чтобы отобразить диалоговое окно без режима, вместо этого вызовите метод Show () для DialogBoxForm. Вам нужно будет добавить обработчик событий в событие Close DialogBoxForm, чтобы знать, когда пользователь закрывает диалоговое окно:
Public Sub ShowDialogBox()
Dim dialog As DialogBoxForm = New DialogBoxForm
dialog.LoginName = "JDMurray"
dialog.Password = String.Empty
AddHandler dialog.FormClosed, AddressOf dialog_FormClosed
dialog.Show()
' The Show() method returns immediately
End Sub
Private Sub dialog_FormClosed(ByVal sender As Object, _
ByVal e As FormClosedEventArgs)
' This method is called when the user closes the dialog box
End Sub