我正在開發一個 C# WPF 應用程式。在我從用戶那里得到一些輸入后,我需要檢查一些條件,如果條件不匹配并且用戶按下了 X 按鈕,我需要能夠顯示一個包含錯誤的 MessageBox。用戶在 MessageBox 中按下確定后,我需要用戶回傳上一個視窗。我的代碼看起來像這樣。
private void Window_Closing(object sender, CancelEventArgs e)
{
MessageBoxResult closingMessegeBoxResult = MessageBox.Show("Is it OK to close?", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
if (closingMessegeBoxResult != MessageBoxResult.OK)
{
e.Cancel = true;
this.Activate();
}
}
private void Window_Closed(object sender, EventArgs a)
{
}
現在我只希望能夠顯示帶有隨機錯誤的 MessageBox。
uj5u.com熱心網友回復:
您應該使用該MessageBoxButton.OKCancel選項使用戶能夠避免關閉視窗:
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
MessageBoxResult closingMessegeBoxResult = MessageBox.Show("Is it OK to close?", "Error",
MessageBoxButton.OKCancel, MessageBoxImage.Error);
if (closingMessegeBoxResult != MessageBoxResult.OK)
{
e.Cancel = true;
}
}
使用上面的代碼,只有當用戶單擊對話框的“確定”按鈕時,視窗才會關閉。
uj5u.com熱心網友回復:
您的代碼作業正常。
您必須將 OnClosing 事件添加到視窗,
當您單擊關閉視窗時,您將看到訊息
<Window x:Class="TestProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:TestProject"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800"
Closing="MainWindow_OnClosing">
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void MainWindow_OnClosing(object? sender, CancelEventArgs e)
{
MessageBoxResult closingMessegeBoxResult = MessageBox.Show("Is it OK to close?", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
if (closingMessegeBoxResult == MessageBoxResult.OK)
{
e.Cancel = true;
this.Activate();
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/440634.html
