如何使用“是/否”MessageBox的结果
本文关键字:MessageBox 结果 何使用 | 更新日期: 2023-09-27 18:25:19
我正在尝试制作一个程序,为"活动"保留和显示可用和不可用的座位。我得到的错误如下:
"System.Nullable"不包含"Yes"的定义,也找不到接受类型为"System.Nullable"的第一个参数的扩展方法"Yes"(是否缺少using指令或程序集引用?)
("否"也是如此)和
"System.Windows.Window.DialogResult"是一个"属性",但与"类型"类似。
这就是我目前所拥有的:
private void btnSeat1_Click(object sender, RoutedEventArgs e)
{
if (!Seat1)
{
DialogResult Result = MessageBox.Show("This Seat is Available, Would you like to pick it?", "Would you like this seat?", MessageBoxButton.YesNo, MessageBoxImage.Question);
if (Result == DialogResult.Yes)
{
MessageBox.Show("You Reserved this seat");
btnSeat1.Text = "Reserved";
}
else if (Result == DialogResult.No)
{
Environment.Exit(0);
}
注意:我只使用了Environment.Exit作为占位符。这是故意的,将相应地改变。这不是问题的根源。
此行:
DialogResult Result = MessageBox.Show("This Seat is Available, Would you like to pick it?", "Would you like this seat?", MessageBoxButton.YesNo, MessageBoxImage.Question);
实际上应该是这样的:
var Result = MessageBox.Show("This Seat is Available, Would you like to pick it?", "Would you like this seat?", MessageBoxButton.YesNo, MessageBoxImage.Question);
然后,如果您将鼠标悬停在Result
上,您可以看到它不是DialogResult
,而是MessageBoxResult
,或者,如果您更喜欢显式键入它,请尝试:
MessageBoxResult Result = MessageBox.Show(...
所以你可以在if语句中这样使用它:
if (Result == MessageBoxResult.Yes)
{
MessageBox.Show("You Reserved this seat");
btnSeat1.Text = "Reserved";
}
else if (Result == MessageBoxResult.No)
{
Environment.Exit(0);
}
您得到这个错误是因为DialogResult
实际上是Window
类的一个属性,并且您正试图像使用它的类型一样使用它(正如编译器所说)。