private void ux_datagridview_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { DataGridView dgv = (DataGridView)sender; DataTable dt = (DataTable)((BindingSource)dgv.DataSource).DataSource; string columnName = dgv.CurrentCell.OwningColumn.Name; DataColumn dc = dt.Columns[columnName]; DataRow dr; if (_sharedUtils.LookupTablesIsValidFKField(dc)) { string luTableName = dc.ExtendedProperties["foreign_key_dataview_name"].ToString().Trim(); dr = ((DataRowView)dgv.CurrentRow.DataBoundItem).Row; string suggestedFilter = dgv.CurrentCell.EditedFormattedValue.ToString(); GRINGlobal.Client.Common.LookupTablePicker ltp = new GRINGlobal.Client.Common.LookupTablePicker(_sharedUtils, columnName, dr, suggestedFilter); ltp.StartPosition = FormStartPosition.CenterParent; if (DialogResult.OK == ltp.ShowDialog()) { if (dr != null) { if (ltp.NewKey != null && dr[dgv.CurrentCell.ColumnIndex].ToString().Trim() != ltp.NewKey.Trim()) { dr[dgv.CurrentCell.ColumnIndex] = ltp.NewKey.Trim(); dgv.CurrentCell.Value = ltp.NewValue.Trim(); } else if (ltp.NewKey == null) { dr[dgv.CurrentCell.ColumnIndex] = DBNull.Value; dgv.CurrentCell.Value = ""; } dr.SetColumnError(dgv.CurrentCell.ColumnIndex, null); } } dgv.EndEdit(); } }
private void ux_datagridviewMain_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { DataGridView dgv = (DataGridView)sender; DataTable dt = null; if (dgv.DataSource.GetType() == typeof(BindingSource)) { dt = (DataTable)((BindingSource)dgv.DataSource).DataSource; } else { dt = (DataTable)dgv.DataSource; } string columnName = dgv.CurrentCell.OwningColumn.Name; DataColumn dc = dt.Columns[columnName]; DataRow dr; if (_sharedUtils.LookupTablesIsValidFKField(dc)) { //string luTableName = dc.ExtendedProperties["foreign_key_resultset_name"].ToString().Trim(); string luTableName = dc.ExtendedProperties["foreign_key_dataview_name"].ToString().Trim(); dr = ((DataRowView)dgv.CurrentRow.DataBoundItem).Row; //GrinGlobal.Client.Data.LookupTablePicker ltp = new GrinGlobal.Client.Data.LookupTablePicker(lookupTables, localDBInstance, columnName, dr, dgv.CurrentCell.EditedFormattedValue.ToString()); string suggestedFilter = dgv.CurrentCell.EditedFormattedValue.ToString(); if (_lastDGVCharPressed > 0) suggestedFilter = _lastDGVCharPressed.ToString(); //GRINGlobal.Client.Common.LookupTablePicker ltp = new GRINGlobal.Client.Common.LookupTablePicker(lookupTables, columnName, dr, suggestedFilter); GRINGlobal.Client.Common.LookupTablePicker ltp = new GRINGlobal.Client.Common.LookupTablePicker(_sharedUtils, columnName, dr, suggestedFilter); _lastDGVCharPressed = (char)0; ltp.StartPosition = FormStartPosition.CenterParent; if (DialogResult.OK == ltp.ShowDialog()) { if (dr != null) { if (ltp.NewKey != null && dr[dgv.CurrentCell.ColumnIndex].ToString().Trim() != ltp.NewKey.Trim()) { dr[dgv.CurrentCell.ColumnIndex] = ltp.NewKey.Trim(); dgv.CurrentCell.Value = ltp.NewValue.Trim(); } else if(ltp.NewKey == null) { dr[dgv.CurrentCell.ColumnIndex] = DBNull.Value; dgv.CurrentCell.Value = ""; } dr.SetColumnError(dgv.CurrentCell.ColumnIndex, null); } } dgv.EndEdit(); } }
void textBox_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar != Convert.ToChar(Keys.Escape)) // Ignore the Escape key and process anything else... { TextBox tb = (TextBox)sender; if (!tb.ReadOnly) { //LookupTablePicker ltp = new LookupTablePicker(_lookupTables, tb.Tag.ToString(), ((DataRowView)_bindingSource.Current).Row, tb.Text); LookupTablePicker ltp = new LookupTablePicker(_sharedUtils, tb.Tag.ToString(), ((DataRowView)_bindingSource.Current).Row, tb.Text); ltp.StartPosition = FormStartPosition.CenterParent; if (DialogResult.OK == ltp.ShowDialog()) { tb.Text = ltp.NewValue.Trim(); } e.Handled = true; } } }
void textBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Delete) // Process the Delete key (since it is not passed on to the KeyPress event handler)... { TextBox tb = (TextBox)sender; if (!tb.ReadOnly) { //LookupTablePicker ltp = new LookupTablePicker(_lookupTables, tb.Tag.ToString(), ((DataRowView)_bindingSource.Current).Row, tb.Text); LookupTablePicker ltp = new LookupTablePicker(_sharedUtils, tb.Tag.ToString(), ((DataRowView)_bindingSource.Current).Row, tb.Text); ltp.StartPosition = FormStartPosition.CenterParent; if (DialogResult.OK == ltp.ShowDialog()) { tb.Text = ltp.NewValue.Trim(); } e.Handled = true; } } }
void textBox_KeyPress(object sender, KeyPressEventArgs e) { TextBox tb = (TextBox)sender; if (!tb.ReadOnly) { foreach (Binding b in tb.DataBindings) { if (b.BindingManagerBase != null && b.BindingManagerBase.Current != null && b.BindingManagerBase.Current is DataRowView && b.BindingMemberInfo.BindingField != null) { if (_sharedUtils.LookupTablesIsValidFKField(((DataRowView)b.BindingManagerBase.Current).Row.Table.Columns[b.BindingMemberInfo.BindingField]) && e.KeyChar != Convert.ToChar(Keys.Escape)) // Ignore the Escape key and process anything else... { LookupTablePicker ltp = new LookupTablePicker(_sharedUtils, tb.Tag.ToString(), ((DataRowView)b.BindingManagerBase.Current).Row, tb.Text); ltp.StartPosition = FormStartPosition.CenterParent; if (DialogResult.OK == ltp.ShowDialog()) { tb.Text = ltp.NewValue.Trim(); } e.Handled = true; } } } } }
void textBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Delete) // Process the Delete key (since it is not passed on to the KeyPress event handler)... { TextBox tb = (TextBox)sender; if (!tb.ReadOnly) { foreach (Binding b in tb.DataBindings) { if (b.BindingManagerBase != null && b.BindingManagerBase.Current != null && b.BindingManagerBase.Current is DataRowView && b.BindingMemberInfo.BindingField != null) { // Just in case the user selected only a part of the full text to delete - strip out the selected text and process normally... string remainingText = tb.Text.Remove(tb.SelectionStart, tb.SelectionLength); if (string.IsNullOrEmpty(remainingText)) { // When a textbox is bound to a table - some datatypes will not revert to a DBNull via the bound control - so // take control of the update and force the field back to a null (non-nullable fields should show up to the GUI with colored background)... ((DataRowView)b.BindingManagerBase.Current).Row[b.BindingMemberInfo.BindingField] = DBNull.Value; b.ReadValue(); e.Handled = true; } else { if (_sharedUtils.LookupTablesIsValidFKField(((DataRowView)b.BindingManagerBase.Current).Row.Table.Columns[b.BindingMemberInfo.BindingField])) { LookupTablePicker ltp = new LookupTablePicker(_sharedUtils, tb.Tag.ToString(), ((DataRowView)b.BindingManagerBase.Current).Row, remainingText); ltp.StartPosition = FormStartPosition.CenterParent; if (DialogResult.OK == ltp.ShowDialog()) { tb.Text = ltp.NewValue.Trim(); b.WriteValue(); e.Handled = true; } } } } } } } }