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
- AvTraceDetails.cs
- ObjectStateEntry.cs
- FreezableOperations.cs
- PagerSettings.cs
- WebPartsSection.cs
- WindowsFormsSectionHandler.cs
- SequentialUshortCollection.cs
- ApplicationSecurityManager.cs
- PathFigure.cs
- ProcessingInstructionAction.cs
- InfiniteIntConverter.cs
- DbMetaDataColumnNames.cs
- TopClause.cs
- WebPartEventArgs.cs
- RawStylusInputCustomData.cs
- SwitchExpression.cs
- ILGen.cs
- SafeNativeMethods.cs
- FileDialogCustomPlace.cs
- AutoSizeComboBox.cs
- BindableTemplateBuilder.cs
- ImageCodecInfoPrivate.cs
- AssemblyBuilderData.cs
- ConcurrencyBehavior.cs
- SafeThemeHandle.cs
- ReadOnlyHierarchicalDataSourceView.cs
- CardSpacePolicyElement.cs
- OrderPreservingPipeliningSpoolingTask.cs
- SqlClientWrapperSmiStream.cs
- DataServiceRequest.cs
- DesignerUtility.cs
- ObsoleteAttribute.cs
- FileStream.cs
- TextPointerBase.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- Int64.cs
- URLString.cs
- ObjectList.cs
- IndexedString.cs
- ManagementOperationWatcher.cs
- ProfileSection.cs
- PolygonHotSpot.cs
- ListSortDescriptionCollection.cs
- InfoCardBaseException.cs
- LocalizationParserHooks.cs
- CopyAction.cs
- XmlSerializationGeneratedCode.cs
- HtmlAnchor.cs
- StrokeCollectionDefaultValueFactory.cs
- RowVisual.cs
- CodeArrayCreateExpression.cs
- XmlIgnoreAttribute.cs
- XamlTemplateSerializer.cs
- ToolStripDropTargetManager.cs
- CSharpCodeProvider.cs
- StyleXamlTreeBuilder.cs
- Point3D.cs
- CultureSpecificStringDictionary.cs
- DataGridSortCommandEventArgs.cs
- ConstrainedDataObject.cs
- PolicyLevel.cs
- Decimal.cs
- ApplyTemplatesAction.cs
- StringFreezingAttribute.cs
- TransactionFlowOption.cs
- DependencyPropertyChangedEventArgs.cs
- MessageTransmitTraceRecord.cs
- AssemblyBuilder.cs
- ClientConvert.cs
- DataBindingCollectionConverter.cs
- TraceProvider.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- DockAndAnchorLayout.cs
- PlacementWorkspace.cs
- XmlReaderDelegator.cs
- NavigationPropertyEmitter.cs
- NextPreviousPagerField.cs
- SimpleBitVector32.cs
- Query.cs
- MetadataSource.cs
- XmlMembersMapping.cs
- DiagnosticsConfigurationHandler.cs
- TextOptionsInternal.cs
- CodeAttributeArgument.cs
- ApplicationFileCodeDomTreeGenerator.cs
- TextSelectionProcessor.cs
- DiscreteKeyFrames.cs
- CodeTypeOfExpression.cs
- DecoderReplacementFallback.cs
- ClientSettingsProvider.cs
- QueryRelOp.cs
- MultipartContentParser.cs
- RenamedEventArgs.cs
- DragDrop.cs
- QilValidationVisitor.cs
- CreateRefExpr.cs
- Mapping.cs
- XsltException.cs
- TabRenderer.cs
- PeerPresenceInfo.cs