Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / WinForms / Managed / System / WinForms / DataGridViewComboBoxEditingControl.cs / 1 / DataGridViewComboBoxEditingControl.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System; using System.Drawing; using System.Diagnostics; using System.Globalization; using System.Runtime.InteropServices; ///[ ComVisible(true), ClassInterface(ClassInterfaceType.AutoDispatch) ] public class DataGridViewComboBoxEditingControl : ComboBox, IDataGridViewEditingControl { private DataGridView dataGridView; private bool valueChanged; private int rowIndex; /// public DataGridViewComboBoxEditingControl() : base() { this.TabStop = false; } // IDataGridViewEditingControl interface implementation /// public virtual DataGridView EditingControlDataGridView { get { return this.dataGridView; } set { this.dataGridView = value; } } /// public virtual object EditingControlFormattedValue { get { return GetEditingControlFormattedValue(DataGridViewDataErrorContexts.Formatting); } set { string valueStr = value as string; if (valueStr != null) { this.Text = valueStr; if (String.Compare(valueStr, this.Text, true, CultureInfo.CurrentCulture) != 0) { this.SelectedIndex = -1; } } } } /// public virtual int EditingControlRowIndex { get { return this.rowIndex; } set { this.rowIndex = value; } } /// public virtual bool EditingControlValueChanged { get { return this.valueChanged; } set { this.valueChanged = value; } } /// public virtual Cursor EditingPanelCursor { get { return Cursors.Default; } } /// public virtual bool RepositionEditingControlOnValueChange { get { return false; } } /// public virtual void ApplyCellStyleToEditingControl(DataGridViewCellStyle dataGridViewCellStyle) { this.Font = dataGridViewCellStyle.Font; if (dataGridViewCellStyle.BackColor.A < 255) { // Our ComboBox does not support transparent back colors Color opaqueBackColor = Color.FromArgb(255, dataGridViewCellStyle.BackColor); this.BackColor = opaqueBackColor; this.dataGridView.EditingPanel.BackColor = opaqueBackColor; } else { this.BackColor = dataGridViewCellStyle.BackColor; } this.ForeColor = dataGridViewCellStyle.ForeColor; } /// public virtual bool EditingControlWantsInputKey(Keys keyData, bool dataGridViewWantsInputKey) { if ((keyData & Keys.KeyCode) == Keys.Down || (keyData & Keys.KeyCode) == Keys.Up || (this.DroppedDown && ((keyData & Keys.KeyCode) == Keys.Escape) || (keyData & Keys.KeyCode) == Keys.Enter)) { return true; } return !dataGridViewWantsInputKey; } /// public virtual object GetEditingControlFormattedValue(DataGridViewDataErrorContexts context) { return this.Text; } /// public virtual void PrepareEditingControlForEdit(bool selectAll) { if (selectAll) { SelectAll(); } } private void NotifyDataGridViewOfValueChange() { this.valueChanged = true; this.dataGridView.NotifyCurrentCellDirty(true); } /// protected override void OnSelectedIndexChanged(EventArgs e) { base.OnSelectedIndexChanged(e); if (this.SelectedIndex != -1) { NotifyDataGridViewOfValueChange(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System; using System.Drawing; using System.Diagnostics; using System.Globalization; using System.Runtime.InteropServices; ///[ ComVisible(true), ClassInterface(ClassInterfaceType.AutoDispatch) ] public class DataGridViewComboBoxEditingControl : ComboBox, IDataGridViewEditingControl { private DataGridView dataGridView; private bool valueChanged; private int rowIndex; /// public DataGridViewComboBoxEditingControl() : base() { this.TabStop = false; } // IDataGridViewEditingControl interface implementation /// public virtual DataGridView EditingControlDataGridView { get { return this.dataGridView; } set { this.dataGridView = value; } } /// public virtual object EditingControlFormattedValue { get { return GetEditingControlFormattedValue(DataGridViewDataErrorContexts.Formatting); } set { string valueStr = value as string; if (valueStr != null) { this.Text = valueStr; if (String.Compare(valueStr, this.Text, true, CultureInfo.CurrentCulture) != 0) { this.SelectedIndex = -1; } } } } /// public virtual int EditingControlRowIndex { get { return this.rowIndex; } set { this.rowIndex = value; } } /// public virtual bool EditingControlValueChanged { get { return this.valueChanged; } set { this.valueChanged = value; } } /// public virtual Cursor EditingPanelCursor { get { return Cursors.Default; } } /// public virtual bool RepositionEditingControlOnValueChange { get { return false; } } /// public virtual void ApplyCellStyleToEditingControl(DataGridViewCellStyle dataGridViewCellStyle) { this.Font = dataGridViewCellStyle.Font; if (dataGridViewCellStyle.BackColor.A < 255) { // Our ComboBox does not support transparent back colors Color opaqueBackColor = Color.FromArgb(255, dataGridViewCellStyle.BackColor); this.BackColor = opaqueBackColor; this.dataGridView.EditingPanel.BackColor = opaqueBackColor; } else { this.BackColor = dataGridViewCellStyle.BackColor; } this.ForeColor = dataGridViewCellStyle.ForeColor; } /// public virtual bool EditingControlWantsInputKey(Keys keyData, bool dataGridViewWantsInputKey) { if ((keyData & Keys.KeyCode) == Keys.Down || (keyData & Keys.KeyCode) == Keys.Up || (this.DroppedDown && ((keyData & Keys.KeyCode) == Keys.Escape) || (keyData & Keys.KeyCode) == Keys.Enter)) { return true; } return !dataGridViewWantsInputKey; } /// public virtual object GetEditingControlFormattedValue(DataGridViewDataErrorContexts context) { return this.Text; } /// public virtual void PrepareEditingControlForEdit(bool selectAll) { if (selectAll) { SelectAll(); } } private void NotifyDataGridViewOfValueChange() { this.valueChanged = true; this.dataGridView.NotifyCurrentCellDirty(true); } /// protected override void OnSelectedIndexChanged(EventArgs e) { base.OnSelectedIndexChanged(e); if (this.SelectedIndex != -1) { NotifyDataGridViewOfValueChange(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WorkflowMarkupSerializationManager.cs
- EntitySqlQueryBuilder.cs
- QilChoice.cs
- ParallelQuery.cs
- LocationUpdates.cs
- RenameRuleObjectDialog.Designer.cs
- CodeIdentifier.cs
- PackageStore.cs
- ZipIOExtraFieldPaddingElement.cs
- SegmentTree.cs
- GlyphShapingProperties.cs
- AnnotationComponentChooser.cs
- PasswordRecovery.cs
- ItemCollection.cs
- VirtualDirectoryMapping.cs
- ChangeProcessor.cs
- StringSorter.cs
- SerializationException.cs
- BasicHttpMessageSecurity.cs
- WebConvert.cs
- RequestQueryParser.cs
- DataSourceIDConverter.cs
- DesignerDataRelationship.cs
- CommandValueSerializer.cs
- LinkedList.cs
- InstanceDescriptor.cs
- TextPenaltyModule.cs
- Label.cs
- ComplexTypeEmitter.cs
- xml.cs
- ScrollItemPattern.cs
- Pair.cs
- TextContainerChangedEventArgs.cs
- FastEncoderWindow.cs
- EpmContentDeSerializer.cs
- WindowsTab.cs
- SqlConnectionFactory.cs
- ProcessHostServerConfig.cs
- Compiler.cs
- PageParser.cs
- TTSEvent.cs
- VectorAnimation.cs
- TraceFilter.cs
- Visual3D.cs
- ListSourceHelper.cs
- TaskFileService.cs
- UnsafeNativeMethods.cs
- AccessViolationException.cs
- FlowDocumentView.cs
- _DisconnectOverlappedAsyncResult.cs
- PropertyPathConverter.cs
- ToolStripSplitStackLayout.cs
- RadioButtonBaseAdapter.cs
- TableRowCollection.cs
- ComplexPropertyEntry.cs
- OleDbCommand.cs
- InternalPermissions.cs
- ClientSponsor.cs
- StyleBamlRecordReader.cs
- CategoryGridEntry.cs
- Crc32.cs
- StylusEditingBehavior.cs
- SqlMethods.cs
- ViewBase.cs
- NamespaceInfo.cs
- ImageAutomationPeer.cs
- CreateUserErrorEventArgs.cs
- ExpressionValueEditor.cs
- DataColumn.cs
- ProcessRequestArgs.cs
- SessionPageStatePersister.cs
- ObjectDataSourceFilteringEventArgs.cs
- TableRow.cs
- PrivacyNoticeElement.cs
- TemplateManager.cs
- OracleCommandSet.cs
- ZeroOpNode.cs
- ListViewItemSelectionChangedEvent.cs
- Documentation.cs
- FileEnumerator.cs
- HTTPNotFoundHandler.cs
- MarshalByValueComponent.cs
- SqlXmlStorage.cs
- UseLicense.cs
- Validator.cs
- Exceptions.cs
- DataGridViewColumnStateChangedEventArgs.cs
- OuterGlowBitmapEffect.cs
- ControlEvent.cs
- StateBag.cs
- MDIWindowDialog.cs
- EntityCommandDefinition.cs
- Enum.cs
- ColumnResizeAdorner.cs
- DoubleAnimationBase.cs
- SqlDependency.cs
- EntityDataSourceQueryBuilder.cs
- TdsRecordBufferSetter.cs
- GridSplitterAutomationPeer.cs
- CellParaClient.cs