Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / ColumnHeaderConverter.cs / 1 / ColumnHeaderConverter.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.Windows.Forms {
using System.Runtime.Serialization.Formatters;
using System.Runtime.Remoting;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Drawing;
using System.Diagnostics;
using System.Globalization;
using System.Reflection;
///
///
///
public class ColumnHeaderConverter : ExpandableObjectConverter {
///
///
/// Gets a value indicating whether this converter can
/// convert an object to the given destination type using the context.
///
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) {
if (destinationType == typeof(InstanceDescriptor)) {
return true;
}
return base.CanConvertTo(context, destinationType);
}
///
///
/// Converts the given object to another type. The most common types to convert
/// are to and from a string object. The default implementation will make a call
/// to ToString on the object if the object is valid and if the destination
/// type is string. If this cannot convert to the desitnation type, this will
/// throw a NotSupportedException.
///
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) {
if (destinationType == null) {
throw new ArgumentNullException("destinationType");
}
if (destinationType == typeof(InstanceDescriptor) && value is ColumnHeader) {
ColumnHeader col = (ColumnHeader) value;
ConstructorInfo ctor;
Type t = TypeDescriptor.GetReflectionType(value);
InstanceDescriptor id = null;
if (col.ImageIndex != -1) {
ctor = t.GetConstructor(new Type[]{typeof(int)});
if (ctor != null) {
id = new InstanceDescriptor(ctor, new object[]{col.ImageIndex}, false);
}
}
if (id == null && !String.IsNullOrEmpty(col.ImageKey)) {
ctor = t.GetConstructor(new Type[]{typeof(string)});
if (ctor != null) {
id = new InstanceDescriptor(ctor, new object[]{col.ImageKey}, false);
}
}
if (id == null) {
ctor = t.GetConstructor(new Type[0]);
if (ctor != null) {
return new InstanceDescriptor(ctor, new object[0], false);
}
else {
throw new ArgumentException(SR.GetString(SR.NoDefaultConstructor, t.FullName));
}
}
return id;
}
return base.ConvertTo(context, culture, value, destinationType);
}
}
}
// 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
- MailBnfHelper.cs
- PinnedBufferMemoryStream.cs
- _BufferOffsetSize.cs
- UiaCoreProviderApi.cs
- TransformedBitmap.cs
- DetailsView.cs
- DynamicEndpoint.cs
- InvalidCommandTreeException.cs
- WindowsGraphics.cs
- CharAnimationBase.cs
- Win32SafeHandles.cs
- CheckableControlBaseAdapter.cs
- MemberAssignmentAnalysis.cs
- GifBitmapDecoder.cs
- PasswordRecovery.cs
- DocumentCollection.cs
- Cursor.cs
- ApplyTemplatesAction.cs
- ClientConfigPaths.cs
- GridViewRow.cs
- CategoryNameCollection.cs
- RangeBaseAutomationPeer.cs
- XmlnsDictionary.cs
- MinMaxParagraphWidth.cs
- Registry.cs
- ManipulationDeltaEventArgs.cs
- WizardForm.cs
- IconHelper.cs
- _FtpControlStream.cs
- DbgCompiler.cs
- SocketCache.cs
- TreeNodeStyleCollection.cs
- BrowsableAttribute.cs
- InsufficientMemoryException.cs
- AvtEvent.cs
- ReadOnlyDataSourceView.cs
- Int16AnimationUsingKeyFrames.cs
- SystemUnicastIPAddressInformation.cs
- OrderedDictionary.cs
- PrinterSettings.cs
- MobileListItem.cs
- AuthenticationSection.cs
- HtmlMobileTextWriter.cs
- UnauthorizedAccessException.cs
- CreatingCookieEventArgs.cs
- CheckBox.cs
- TagNameToTypeMapper.cs
- TableLayoutCellPaintEventArgs.cs
- InputReferenceExpression.cs
- TripleDES.cs
- TcpPortSharing.cs
- Section.cs
- NameSpaceEvent.cs
- ResourceManagerWrapper.cs
- ResourceSet.cs
- SpinWait.cs
- SafeLibraryHandle.cs
- EditorZoneAutoFormat.cs
- LineSegment.cs
- HttpRuntimeSection.cs
- BamlRecordWriter.cs
- Utils.cs
- Matrix3DStack.cs
- ResourceAssociationSetEnd.cs
- GridViewUpdateEventArgs.cs
- ErasingStroke.cs
- RequestCachingSection.cs
- Errors.cs
- DispatcherSynchronizationContext.cs
- TextDecoration.cs
- ByteAnimationUsingKeyFrames.cs
- ScrollBar.cs
- GroupBoxAutomationPeer.cs
- GetKeyedHashRequest.cs
- DataServiceQuery.cs
- SimpleType.cs
- PositiveTimeSpanValidator.cs
- mansign.cs
- XmlSchemaImporter.cs
- Argument.cs
- TextEditorParagraphs.cs
- XmlResolver.cs
- SequenceQuery.cs
- WSFederationHttpSecurity.cs
- XhtmlBasicFormAdapter.cs
- SqlCrossApplyToCrossJoin.cs
- peersecurityelement.cs
- DrawingImage.cs
- PersonalizationEntry.cs
- LinqDataSourceUpdateEventArgs.cs
- X509Utils.cs
- LinqDataSourceDeleteEventArgs.cs
- GridErrorDlg.cs
- ActivationService.cs
- ImpersonateTokenRef.cs
- ExpandoClass.cs
- XmlImplementation.cs
- RowParagraph.cs
- GenerateHelper.cs
- TableLayoutSettingsTypeConverter.cs