Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / FileNameEditor.cs / 1 / FileNameEditor.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.Windows.Forms.Design {
using System.Runtime.Serialization.Formatters;
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Design;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Drawing;
using System.Drawing.Design;
using System.Windows.Forms;
using Microsoft.Win32;
///
///
///
/// Provides an
/// editor for filenames.
///
public class FileNameEditor : UITypeEditor {
private OpenFileDialog openFileDialog;
///
///
/// Edits the given object value using the editor style provided by
/// GetEditorStyle. A service provider is provided so that any
/// required editing services can be obtained.
///
[SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")] // everything in this assembly is full trust.
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) {
Debug.Assert(provider != null, "No service provider; we cannot edit the value");
if (provider != null) {
IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
Debug.Assert(edSvc != null, "No editor service; we cannot edit the value");
if (edSvc != null) {
if (openFileDialog == null) {
openFileDialog = new OpenFileDialog();
InitializeDialog(openFileDialog);
}
if (value is string) {
openFileDialog.FileName = (string)value;
}
if (openFileDialog.ShowDialog() == DialogResult.OK) {
value = openFileDialog.FileName;
}
}
}
return value;
}
///
///
/// Gets the editing style of the Edit method. If the method
/// is not supported, this will return None.
///
[SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")] // everything in this assembly is full trust.
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) {
return UITypeEditorEditStyle.Modal;
}
///
///
/// Initializes the open file dialog when it is created. This gives you
/// an opportunity to configure the dialog as you please. The default
/// implementation provides a generic file filter and title.
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")]
protected virtual void InitializeDialog(OpenFileDialog openFileDialog) {
openFileDialog.Filter = SR.GetString(SR.GenericFileFilter);
openFileDialog.Title = SR.GetString(SR.GenericOpenFile);
}
}
}
// 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
- QilGenerator.cs
- _AuthenticationState.cs
- BitmapEffectGroup.cs
- PartialTrustHelpers.cs
- __FastResourceComparer.cs
- ByValueEqualityComparer.cs
- DataSetSchema.cs
- StringSource.cs
- NamespaceEmitter.cs
- TriggerBase.cs
- CommandID.cs
- FacetChecker.cs
- CustomAssemblyResolver.cs
- PasswordRecovery.cs
- HtmlInputImage.cs
- LockedHandleGlyph.cs
- GuidelineCollection.cs
- FileCodeGroup.cs
- ISFClipboardData.cs
- SessionPageStatePersister.cs
- SingleAnimation.cs
- GridPatternIdentifiers.cs
- RadialGradientBrush.cs
- DATA_BLOB.cs
- Msec.cs
- GrabHandleGlyph.cs
- ActivationWorker.cs
- KeyPullup.cs
- SignedXml.cs
- _NegoState.cs
- TableParaClient.cs
- Separator.cs
- SpotLight.cs
- NumberSubstitution.cs
- DescendentsWalker.cs
- DataServiceHost.cs
- PreviewPageInfo.cs
- DebugView.cs
- ListViewItemSelectionChangedEvent.cs
- ServiceModelSecurityTokenRequirement.cs
- WebPartZoneCollection.cs
- WindowsListView.cs
- HTTPRemotingHandler.cs
- WebPartCatalogAddVerb.cs
- DesignerDataTable.cs
- StaticTextPointer.cs
- ModelItemKeyValuePair.cs
- ClientReliableChannelBinder.cs
- TableLayoutSettings.cs
- ObjectHelper.cs
- LinqDataSourceInsertEventArgs.cs
- ProgressBar.cs
- TraceContext.cs
- QilGenerator.cs
- StateItem.cs
- DiscoveryServerProtocol.cs
- SchemaImporter.cs
- DataConnectionHelper.cs
- ExtentKey.cs
- XmlValueConverter.cs
- LogicalChannel.cs
- WindowsFormsHelpers.cs
- JumpList.cs
- ProbeDuplexCD1AsyncResult.cs
- FormsAuthenticationEventArgs.cs
- OleDbSchemaGuid.cs
- HTTPRemotingHandler.cs
- MetricEntry.cs
- MinMaxParagraphWidth.cs
- AggregateNode.cs
- Collection.cs
- ScrollBarAutomationPeer.cs
- MergeLocalizationDirectives.cs
- ServiceOperation.cs
- CheckBoxField.cs
- ExpressionBuilderCollection.cs
- HtmlTableCellCollection.cs
- WindowInteractionStateTracker.cs
- MachinePropertyVariants.cs
- ConfigXmlDocument.cs
- WebPartConnectionsConnectVerb.cs
- FlagsAttribute.cs
- DataGridViewColumnHeaderCell.cs
- XmlToDatasetMap.cs
- DrawingCollection.cs
- ObjectManager.cs
- TriggerCollection.cs
- VolatileEnlistmentMultiplexing.cs
- GradientStop.cs
- TextStore.cs
- EntityContainerEmitter.cs
- Tokenizer.cs
- XmlSchemaExternal.cs
- DataControlFieldCell.cs
- PersonalizationProviderCollection.cs
- EncryptedKey.cs
- NullableIntSumAggregationOperator.cs
- StringFreezingAttribute.cs
- COSERVERINFO.cs
- Baml2006KeyRecord.cs