我想在调用 iTunes.OnQuittingEvent 事件时显示一个对话框
(我有一个使用COM连接到iTunes的WPF应用程序)
我要创建的此对话框询问用户是否要关闭iTunes,他们也必须关闭应用程序。 因此,如果他们点击该按钮, iTunes,对话框和应用程序将关闭。
但是。 如果他们点击取消按钮,就会关闭对话框并取消退出iTunes。
谁能帮助我吗?抱歉,我还没有任何代码或截图,我还没有弄清楚包括设计在内的一切。这就是我现在得到的全部内容:
在主窗口:
Private Sub iTunes_OnQuittingEvent() Handles iTunes.OnQuittingEvent *'i still don't know how to show a dialog sorry* End Sub
答案 0 :(得分:0)
对于您的对话框,您可以使用类似
的内容Dim result As MessageBoxResult = MessageBox.Show("Message Test", "Caption", MessageBoxButtons.OKCancel)
Select Case result
Case MessageBoxResult.OK
Case MessageBoxResult.Cancel
End Select
这将为您提供一个带有ok / cancel选项的模态消息框。
然后,您可以决定使用案例陈述做什么。
要制作自定义对话框,您可以使用类似的内容。
这是一个简单的例子。
XAML
<Window x:Class="MessageWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="DialogWindow" Height="150" MaxHeight="450" Width="400" MaxWidth="600" SizeToContent="WidthAndHeight" WindowStartupLocation="CenterScreen">
<StackPanel Orientation="Horizontal">
<Button Name="btnYes" Content="Yes" Click="btnYes_Click"></Button>
<Button Name="btnNo" Content="No" Click="btnNo_Click"></Button>
<Button Name="btnCancel" Content="Cancel" Click="btnCancel_Click"></Button>
</StackPanel></Window>
VB
Public Class MessageWindow
Private _messageResponse As MessageBoxResult
Public Property MessageResponse As MessageBoxResult
Get
Return _messageResponse
End Get
Set(value As MessageBoxResult)
_messageResponse = value
End Set
End Property
Private Sub btnYes_Click(sender As System.Object, e As System.Windows.RoutedEventArgs)
DialogResult = True
_messageResponse = MessageBoxResult.Yes
Me.Close()
End Sub
Private Sub btnNo_Click(sender As System.Object, e As System.Windows.RoutedEventArgs)
DialogResult = False
_messageResponse = MessageBoxResult.No
Me.Close()
End Sub
Private Sub btnCancel_Click(sender As System.Object, e As System.Windows.RoutedEventArgs)
DialogResult = False
_messageResponse = MessageBoxResult.Cancel
Me.Close()
End Sub
End Class
然后你可以像这样使用它
Dim messageWindow As New MessageWindow()
messageWindow.ShowDialog()
Dim result As MessageBoxResult = messageWindow.MessageResponse
'handle response
请注意,如果您只有两个可能的响应,那么您可以使用Window的dialogresult属性,该属性是从window的showdialog函数返回的。例如。对于OK,您可以使用dialogresult = true,对于cancel,您可以使用dialogresult = false。