Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / listviewsubitemcollectioneditor.cs / 1 / listviewsubitemcollectioneditor.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.Windows.Forms.Design.ListViewSubItemCollectionEditor..ctor(System.Type)")] namespace System.Windows.Forms.Design { using System.Runtime.InteropServices; using System.Diagnostics; using System; using System.IO; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design; using System.Windows.Forms; using System.Drawing; using System.Design; using System.Drawing.Design; using System.Windows.Forms.ComponentModel; ////// /// internal class ListViewSubItemCollectionEditor : CollectionEditor { private static int count = 0; ListViewItem.ListViewSubItem firstSubItem = null; ////// Provides an editor for an image collection. ////// /// public ListViewSubItemCollectionEditor(Type type) : base(type){ } ///Initializes a new instance of the ///class. /// /// // VSWhidbey 122909: Set the Name property in the item's properties. protected override object CreateInstance(Type type) { object instance = base.CreateInstance(type); // slap in a default site-like name if (instance is ListViewItem.ListViewSubItem) { ((ListViewItem.ListViewSubItem)instance).Name = SR.GetString(SR.ListViewSubItemBaseName) + count++; } return instance; } ///Creates an instance of the specified type in the collection. ////// /// Retrieves the display text for the given list sub item. /// protected override string GetDisplayText(object value) { string text; if (value == null) { return string.Empty; } PropertyDescriptor prop = TypeDescriptor.GetDefaultProperty(CollectionType); if (prop != null && prop.PropertyType == typeof(string)) { text = (string)prop.GetValue(value); if (text != null && text.Length > 0) { return text; } } text = TypeDescriptor.GetConverter(value).ConvertToString(value); if (text == null || text.Length == 0) { text = value.GetType().Name; } return text; } ///protected override object[] GetItems(object editValue) { // take the fist sub item out of the collection ListViewItem.ListViewSubItemCollection subItemsColl = (ListViewItem.ListViewSubItemCollection) editValue; // add all the other sub items object[] values = new object[subItemsColl.Count]; ((ICollection)subItemsColl).CopyTo(values, 0); if (values.Length > 0) { // save the first sub item firstSubItem = subItemsColl[0]; // now return the rest. // object[] subValues = new object[values.Length - 1]; Array.Copy(values, 1, subValues, 0, subValues.Length); values = subValues; } return values; } /// protected override object SetItems(object editValue, object[] value) { IList list = editValue as IList; list.Clear(); list.Add(firstSubItem); for (int i = 0; i < value.Length; i ++) { list.Add(value[i]); } return editValue; } } } // 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
- LoginName.cs
- DisposableCollectionWrapper.cs
- SRGSCompiler.cs
- ExeConfigurationFileMap.cs
- METAHEADER.cs
- SmiContextFactory.cs
- IisTraceListener.cs
- SafeProcessHandle.cs
- BindingsCollection.cs
- XmlSchemaAny.cs
- QuotedPrintableStream.cs
- InheritanceAttribute.cs
- XPathEmptyIterator.cs
- ServiceDiscoveryElement.cs
- RegexMatchCollection.cs
- XmlAttributes.cs
- ClockController.cs
- XamlDesignerSerializationManager.cs
- QuaternionValueSerializer.cs
- UInt64Converter.cs
- SoapProcessingBehavior.cs
- RegexNode.cs
- LogWriteRestartAreaAsyncResult.cs
- SectionInformation.cs
- IdentityModelStringsVersion1.cs
- DrawingBrush.cs
- ExplicitDiscriminatorMap.cs
- SimpleFieldTemplateUserControl.cs
- RawStylusSystemGestureInputReport.cs
- PropertyChangedEventManager.cs
- SqlTypeConverter.cs
- SqlDataSourceView.cs
- FormClosingEvent.cs
- VarRemapper.cs
- SqlServices.cs
- WizardPanelChangingEventArgs.cs
- ToolboxDataAttribute.cs
- DataColumnMappingCollection.cs
- ListControl.cs
- LocatorBase.cs
- StringDictionaryCodeDomSerializer.cs
- StringPropertyBuilder.cs
- FixedDocumentSequencePaginator.cs
- BaseWebProxyFinder.cs
- EdmMember.cs
- odbcmetadatacollectionnames.cs
- DetailsViewRowCollection.cs
- AllowedAudienceUriElement.cs
- UriTemplateDispatchFormatter.cs
- ParallelTimeline.cs
- Validator.cs
- CompatibleComparer.cs
- WindowsStatic.cs
- CriticalExceptions.cs
- ClickablePoint.cs
- DataGridViewRow.cs
- ElementHostAutomationPeer.cs
- WebServiceReceiveDesigner.cs
- InitializationEventAttribute.cs
- AudienceUriMode.cs
- DurableEnlistmentState.cs
- UIElementCollection.cs
- MatrixAnimationBase.cs
- SplitContainer.cs
- PersonalizablePropertyEntry.cs
- StreamInfo.cs
- SoapSchemaImporter.cs
- ConfigurationValidatorAttribute.cs
- AndCondition.cs
- TransformerInfoCollection.cs
- MessageTraceRecord.cs
- CodeCommentStatement.cs
- AutomationProperty.cs
- Pointer.cs
- ProfilePropertySettings.cs
- DatagridviewDisplayedBandsData.cs
- PlatformCulture.cs
- Script.cs
- ContextMenuAutomationPeer.cs
- SmtpCommands.cs
- RangeValidator.cs
- MergeEnumerator.cs
- MethodBuilderInstantiation.cs
- IxmlLineInfo.cs
- ImageIndexConverter.cs
- DataTableTypeConverter.cs
- BulletedList.cs
- BuildProvider.cs
- EventDescriptor.cs
- StyleSheetRefUrlEditor.cs
- TableLayoutPanelCodeDomSerializer.cs
- EventHandlerService.cs
- EditorPartChrome.cs
- DataRelationCollection.cs
- TableCellAutomationPeer.cs
- EventProviderClassic.cs
- cookiecontainer.cs
- SerializationSectionGroup.cs
- ComponentCollection.cs
- ClientProxyGenerator.cs