Cancel window closing event : Window Event « Windows Presentation Foundation « C# / CSharp Tutorial






using System;
using System.ComponentModel;        // for CancelEventArgs
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;

    class MainClass : Window
    {
        static string strFileName = "c:\\a.txt";
        TextBox txtbox = new TextBox();
        [STAThread]
        public static void Main()
        {
            Application app = new Application();
            app.Run(new MainClass());
        }
        public MainClass()
        {
            txtbox.AcceptsReturn = true;
            txtbox.TextWrapping = TextWrapping.Wrap;
            txtbox.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
            txtbox.KeyDown += TextBoxOnKeyDown;
            Content = txtbox;

            txtbox.Text = File.ReadAllText(strFileName);
            txtbox.CaretIndex = txtbox.Text.Length;
            txtbox.Focus();
        }
        protected override void OnClosing(CancelEventArgs args)
        {
            try
            {
                Directory.CreateDirectory(Path.GetDirectoryName(strFileName));
                File.WriteAllText(strFileName, txtbox.Text);
            }
            catch (Exception exc)
            {
                MessageBoxResult result = 
                    MessageBox.Show("File could not be saved: " + exc.Message + 
                                    "\nClose program anyway?", Title, 
                                    MessageBoxButton.YesNo, 
                                    MessageBoxImage.Exclamation);

                args.Cancel = (result == MessageBoxResult.No);
            }
        }
        void TextBoxOnKeyDown(object sender, KeyEventArgs args)
        {
            if (args.Key == Key.F5)
            {
                txtbox.SelectedText = DateTime.Now.ToString();
                txtbox.CaretIndex = txtbox.SelectionStart + txtbox.SelectionLength;
            }
        }
    }








24.71.Window Event
24.71.1.Window mouse down eventWindow mouse down event
24.71.2.Window Preview mouse down eventWindow Preview mouse down event
24.71.3.Window mouse up eventWindow mouse up event
24.71.4.Window.DragMoveWindow.DragMove
24.71.5.Window.CommandBindingsWindow.CommandBindings
24.71.6.Use Window Activated and Deactivated event to control a media fileUse Window Activated and Deactivated event to control a media file
24.71.7.Custom Element Binding WindowCustom Element Binding Window
24.71.8.ShutdownMode.OnLastWindowCloseShutdownMode.OnLastWindowClose
24.71.9.Window Loaded eventWindow Loaded event
24.71.10.Close a window with Escape key pressedClose a window with Escape key pressed
24.71.11.Window Closing and Closed eventWindow Closing and Closed event
24.71.12.Create Window and add window closing event handlerCreate Window and add window closing event handler
24.71.13.Do not handle events until Window is fully initialized.Do not handle events until Window is fully initialized.
24.71.14.Window On Mouse move eventWindow On Mouse move event
24.71.15.Window On Mouse up eventWindow On Mouse up event
24.71.16.Window Preview Key EventsWindow Preview Key Events
24.71.17.Listen to Window loaded eventListen to Window loaded event
24.71.18.Listen to window resize event
24.71.19.Retrieving the mouse position relative to controls on a WindowRetrieving the mouse position relative to controls on a Window
24.71.20.Listen to text input event for Window
24.71.21.Get input text from TextCompositionEventArgs.Text
24.71.22.Cancel window closing event