2

ウィンドウを使用して、アプリケーションのデータベース構成を変更しています。設定ボタンのクリックは Config() によって処理され、クリックすると設定ウィンドウが表示されます。ウィンドウの右隅にあるクロス記号を使用して閉じると、次の例外が表示されているウィンドウを再利用できません。

ウィンドウを閉じた後は、Visibility を設定したり、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

ウィンドウを再利用することはできません。

ボタン以外の方法でウィンドウを閉じることOKCancel問題である場合は、イベントを処理する必要があります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 に答える