Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AQNBuilder.cs
- PublishLicense.cs
- PageContentCollection.cs
- TextParagraph.cs
- DataSysAttribute.cs
- WebServiceAttribute.cs
- WorkflowValidationFailedException.cs
- NumericPagerField.cs
- coordinatorscratchpad.cs
- DataGrid.cs
- XD.cs
- LocalizableResourceBuilder.cs
- X509Utils.cs
- DeferrableContentConverter.cs
- CaseStatement.cs
- HttpListenerPrefixCollection.cs
- FontInfo.cs
- DynamicResourceExtensionConverter.cs
- FixedDocumentPaginator.cs
- SimpleType.cs
- SemaphoreSlim.cs
- TypeSemantics.cs
- Model3DGroup.cs
- SettingsSavedEventArgs.cs
- _ShellExpression.cs
- PointLight.cs
- ProcessProtocolHandler.cs
- PoisonMessageException.cs
- DataGridViewRowConverter.cs
- ComNativeDescriptor.cs
- XmlReflectionMember.cs
- WebServiceMethodData.cs
- CodeGenerator.cs
- UInt64Storage.cs
- DependencySource.cs
- FlatButtonAppearance.cs
- XmlSchemaAttribute.cs
- CompoundFileStorageReference.cs
- WebConfigurationFileMap.cs
- HttpCapabilitiesEvaluator.cs
- TracingConnectionListener.cs
- InternalConfigConfigurationFactory.cs
- thaishape.cs
- securitymgrsite.cs
- WebZone.cs
- InputEventArgs.cs
- InvalidProgramException.cs
- SystemResources.cs
- Grant.cs
- _HeaderInfo.cs
- RelationshipType.cs
- EnglishPluralizationService.cs
- DesignerSerializerAttribute.cs
- InternalConfigRoot.cs
- SchemaElementDecl.cs
- DataGridViewLinkColumn.cs
- InvokeGenerator.cs
- GeometryHitTestResult.cs
- ErrorsHelper.cs
- DesignerRegion.cs
- HtmlInputImage.cs
- OperationPickerDialog.designer.cs
- ProbeMatchesCD1.cs
- SafeFileHandle.cs
- RSACryptoServiceProvider.cs
- ComponentDispatcher.cs
- ClientSponsor.cs
- Composition.cs
- QueuePathEditor.cs
- VirtualPathProvider.cs
- ConnectionStringsExpressionBuilder.cs
- UInt16.cs
- DataGridRow.cs
- Popup.cs
- SecurityDocument.cs
- PingReply.cs
- XmlQuerySequence.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- HierarchicalDataSourceControl.cs
- SmtpSection.cs
- KeysConverter.cs
- CultureInfoConverter.cs
- XmlNamedNodeMap.cs
- HostedHttpContext.cs
- VerificationAttribute.cs
- NullReferenceException.cs
- CodeGroup.cs
- PageRequestManager.cs
- CircleEase.cs
- DesigntimeLicenseContextSerializer.cs
- DataSourceControlBuilder.cs
- TypeInitializationException.cs
- CryptoConfig.cs
- TextContainerHelper.cs
- DotAtomReader.cs
- PageCodeDomTreeGenerator.cs
- DeploymentSection.cs
- XPathSelectionIterator.cs
- SqlInternalConnectionSmi.cs
- Transaction.cs