2

我正在使用一个窗口来更改我的应用程序的数据库配置。设置按钮单击由 Config() 处理,单击时显示设置窗口。如果我关闭窗口右上角的使用十字符号,我将无法重用它显示以下异常的窗口。

窗口关闭后无法设置可见性或调用 Show、ShowDialog 或 WindowInteropHelper.EnsureHandle。

ConfigDialogBox configDlg = new ConfigDialogBox();

        private void SettingsChanged(object sender, RoutedEventArgs e)
        {
            Database.host = configDlg.host;
            Database.port = configDlg.port;
            Database.user = configDlg.user;
            Database.password = configDlg.password;
            Database.database = configDlg.database;            
            ConfigDlg.Visibility = Visibility.Hidden;
        }

        private void Config(object sender, RoutedEventArgs e)
        {            
            configDlg.Show();
            configDlg.okButton.Click+=new RoutedEventHandler(SettingsChanged);
            configDlg.cancelButton.Click+=new RoutedEventHandler(SettingsChanged);
        }

        void cancel_Click(object sender, RoutedEventArgs e)
        {         
           ConfigDlg.Visibility = Visibility.Hidden;
        }

关闭后如何重复使用?

4

3 回答 3

2

您不能重复使用该窗口。

OK如果通过和按钮以外的其他方式关闭窗口Cancel是您的问题,则需要处理该Window.Closing事件(请参阅链接以获取示例)。

于 2012-06-27T06:49:23.833 回答
0

你不能。只需创建一个新窗口。

于 2012-06-27T06:01:14.573 回答
0
ConfigDialogBox configDlg = null;



private void Config(object sender, RoutedEventArgs e)
        {            
         configDlg = new ConfigDialogBox();
            configDlg.Show();
            configDlg.okButton.Click+=new RoutedEventHandler(SettingsChanged);
            configDlg.cancelButton.Click+=new RoutedEventHandler(SettingsChanged);
        }
于 2012-06-27T06:04:16.353 回答