Пример #1
0
        protected void HookupEvents()
        {
            AddNewButton.Click += (sender, e) =>
            {
                AddNewButton.Enabled = false;
            };

            SaveButton.Click += (sender, e) =>
            {
                Save();
            };

            DataGridView.DataError += (sender, e) =>
            {
                if (!HandleGridDataError(sender, e))
                {
                    MessageBox.Show(
                        e.Exception.Message,
                        "Error",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Warning);
                }

                e.Cancel         = true;
                e.ThrowException = false;
            };

            DataGridView.RowsRemoved += (sender, e) =>
            {
                AddNewButton.Enabled = !DbDataSet.HasChanges();
            };

            Load += (o, args) =>
            {
                LoadData();
            };

            FormClosing += (sender, e) =>
            {
                BindingSource.EndEdit();

                if (!DbDataSet.HasChanges() && AddNewButton.Enabled)
                {
                    return;
                }

                var result = MessageBox.Show(
                    "You have unsaved changes. Do you want to save them before closing this form?",
                    "Unsaved changes",
                    MessageBoxButtons.YesNoCancel);

                if (result == DialogResult.Cancel)
                {
                    e.Cancel = true;
                }
                else if (result == DialogResult.Yes && !this.Save())
                {
                    e.Cancel = true;
                }
            };
        }