按下其他窗口中的按钮时运行代码

时间:2019-06-14 01:44:08

标签: c# wpf

这是我的第一篇文章。 因此,我已经在构建这个WPF C#应用程序几个月了,而我偶然发现了这个问题。
我已经创建了一个具有注销验证功能的页面(页面名称为UHP),单击“注销”按钮时会弹出一个窗口。窗口询问用户是否要注销,如果是,则应导航到[ngClass]="{'is-active': group.prop === activeProp || (firstItem && !activeProp)}" ,如果不是,则应停留在同一页面上。

在代码中,只要按下“注销”按钮,我就将UHP页面设置为导航到MainWindow,因此,按下“是”还是“否”都没有关系。我要检测注销验证窗口中是否已按下“是”或“否”按钮,以便仅在按下“是”时才执行UHP页面中的代码。

在此处显示页面(UHP)上的“注销”按钮的代码:

MainWindow

“注销验证”窗口的代码:

public void UserLogoutBtn_Click(object sender, RoutedEventArgs e)
        {
            var lovmsgb = new Custom_MessageBoxes.LogoutVerification();
            lovmsgb.ShowDialog();

            var mainWin = new Page();
            NavigationService.Navigate(mainWin);
        }

MainWindow代码,以防万一:

public LogoutVerification()
        {
            InitializeComponent();
        }

        private void YesLogoutBtn_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

        private void NoLogoutBtn(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

2 个答案:

答案 0 :(得分:0)

您应按以下方式使用ShowDialog()

Dialog.xaml 窗口:

<Window x:Class="Dialog">
  <Grid>
    <StackPanel>
      <TextBlock Text="This is a dialog" />
      <StackPanel Orientation="Horizontal">
        <Button Content="Ok"
                IsDefault="True"
                Click="OkButton_OnClick"/>
        <Button Content="Cancel"
                IsCancel="True" />
      </StackPanel>
    </StackPanel>

  </Grid>
</Window>

由于在取消按钮上将IsCancel设置为True,因此当单击取消按钮(或通过关闭关闭对话框关闭对话框)时,对话框自动返回false作为对话框结果图标或Alt + F4)。因此,不需要专用的取消事件处理程序。如果使用“确定”按钮,则必须明确设置结果(请参见下文)。

“代码”按钮Click事件处理程序后面的 Dialog.xaml.cs 代码:

private void OkButton_OnClick(object sender, RoutedEventArgs e)
{
  this.DialogResult = true;
}

修改后的UserLogoutBtn_Click处理程序:

private void UserLogoutBtn_Click(object sender, RoutedEventArgs e)       
{
  var dialog = new Dialog() {Owner = this};

  // Returns when the dialog window was closed
  bool? dialogResult = dialog.ShowDialog();

  if (dialogResult.Value)
  {
    // Ok was clicked
    var mainWin = new Page();
    NavigationService.Navigate(mainWin);
  }
  else
  {
    // Cancel was clicked or the window was closed
  }
}

答案 1 :(得分:-2)

您知道MessageBox吗?如果不是-Google。它使您可以显示一条消息,并且可以将模式设置为显示“是/否”按钮。您可以根据用户单击的按钮编写If语句。