Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- ProxyWebPartConnectionCollection.cs
- PartialToken.cs
- RijndaelManagedTransform.cs
- ViewBase.cs
- ErrorInfoXmlDocument.cs
- SqlCommandSet.cs
- SqlDataSourceAdvancedOptionsForm.cs
- sitestring.cs
- ImageMetadata.cs
- SponsorHelper.cs
- DefaultPrintController.cs
- DataGridPagerStyle.cs
- CardSpaceException.cs
- MappingModelBuildProvider.cs
- CommonObjectSecurity.cs
- ScriptingScriptResourceHandlerSection.cs
- NTAccount.cs
- Viewport3DVisual.cs
- ProfileSettings.cs
- DataError.cs
- HtmlInputCheckBox.cs
- SoapIgnoreAttribute.cs
- DesignerWebPartChrome.cs
- Command.cs
- TextDecorationCollectionConverter.cs
- HostingEnvironmentSection.cs
- PrimarySelectionGlyph.cs
- JsonWriter.cs
- UIAgentMonitorHandle.cs
- ObjectComplexPropertyMapping.cs
- ThrowHelper.cs
- HybridObjectCache.cs
- PopupEventArgs.cs
- NetworkAddressChange.cs
- BindingListCollectionView.cs
- RegularExpressionValidator.cs
- FactoryMaker.cs
- PropertyConverter.cs
- GenericAuthenticationEventArgs.cs
- QueryStringParameter.cs
- UnsafePeerToPeerMethods.cs
- versioninfo.cs
- ApplicationInterop.cs
- GraphicsContainer.cs
- TypeForwardedToAttribute.cs
- Range.cs
- Decorator.cs
- LOSFormatter.cs
- FlowLayoutPanel.cs
- ColorAnimationUsingKeyFrames.cs
- MemberProjectionIndex.cs
- LocalFileSettingsProvider.cs
- HostingEnvironmentSection.cs
- XmlnsPrefixAttribute.cs
- DispatcherExceptionFilterEventArgs.cs
- GeneralTransform2DTo3D.cs
- DataServiceContext.cs
- HtmlPageAdapter.cs
- IListConverters.cs
- EventRecordWrittenEventArgs.cs
- CompilationPass2TaskInternal.cs
- BrowserTree.cs
- DateTimeFormat.cs
- UserMapPath.cs
- ArgumentFixer.cs
- ObjRef.cs
- DockProviderWrapper.cs
- ExpressionStringBuilder.cs
- MediaPlayerState.cs
- FillBehavior.cs
- ForEachAction.cs
- TextEditorParagraphs.cs
- RenamedEventArgs.cs
- EventEntry.cs
- SqlRetyper.cs
- TextElement.cs
- ServicePointManager.cs
- ByeMessageApril2005.cs
- FlowLayoutSettings.cs
- ConfigurationPropertyCollection.cs
- StringConverter.cs
- NameService.cs
- PersonalizationEntry.cs
- EditCommandColumn.cs
- WebScriptMetadataMessageEncoderFactory.cs
- SafeNativeMethods.cs
- ArgumentValidation.cs
- TemplateParser.cs
- Reference.cs
- DateTimeOffset.cs
- HybridObjectCache.cs
- DrawTreeNodeEventArgs.cs
- BamlRecordReader.cs
- Color.cs
- TextRenderer.cs
- RepeaterItem.cs
- DataViewListener.cs
- TableStyle.cs
- FontFamily.cs
- ServiceReference.cs