Mega Code Archive

 
Categories / C# Tutorial / WPF
 

Cancel window closing event

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;             }         }     }