Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / CompMod / System / ComponentModel / Design / DateTimeEditor.cs / 1 / DateTimeEditor.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.ComponentModel.Design { using System.Runtime.InteropServices; using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using Microsoft.Win32; using System.Drawing; using System.Drawing.Design; using System.Windows.Forms; using System.Windows.Forms.Design; ////// /// /// public class DateTimeEditor : UITypeEditor { ////// This date/time editor is a UITypeEditor suitable for /// visually editing DateTime objects. /// ////// /// 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) { object returnValue = value; if (provider != null) { IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); if (edSvc != null) { using (DateTimeUI dateTimeUI = new DateTimeUI()) { dateTimeUI.Start(edSvc, value); edSvc.DropDownControl(dateTimeUI); value = dateTimeUI.Value; dateTimeUI.End(); } } } return value; } ////// /// Retrieves 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.DropDown; } ////// /// UI we drop down to pick dates. /// private class DateTimeUI : Control { private MonthCalendar monthCalendar = new DateTimeMonthCalendar(); private object value; private IWindowsFormsEditorService edSvc; ////// /// public DateTimeUI() { InitializeComponent(); Size = monthCalendar.SingleMonthSize; monthCalendar.Resize += new EventHandler(this.MonthCalResize); } ////// /// public object Value { get { return value; } } ////// /// public void End() { edSvc = null; value = null; } private void MonthCalKeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.Enter: OnDateSelected(sender, null); break; } } ////// /// private void InitializeComponent() { monthCalendar.DateSelected += new DateRangeEventHandler(this.OnDateSelected); monthCalendar.KeyDown += new KeyEventHandler(this.MonthCalKeyDown); this.Controls.Add(monthCalendar); } private void MonthCalResize(object sender, EventArgs e) { this.Size = monthCalendar.Size; } ////// /// private void OnDateSelected(object sender, DateRangeEventArgs e) { value = monthCalendar.SelectionStart; edSvc.CloseDropDown(); } protected override void OnGotFocus(EventArgs e) { base.OnGotFocus(e); monthCalendar.Focus(); } ////// /// public void Start(IWindowsFormsEditorService edSvc, object value) { this.edSvc = edSvc; this.value = value; if (value != null) { DateTime dt = (DateTime) value; monthCalendar.SetDate((dt.Equals(DateTime.MinValue)) ? DateTime.Today : dt); } } class DateTimeMonthCalendar : MonthCalendar { protected override bool IsInputKey(System.Windows.Forms.Keys keyData) { switch (keyData) { case Keys.Enter: return true; } return base.IsInputKey(keyData); } } } } } // 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
- DocumentOrderComparer.cs
- DbMetaDataCollectionNames.cs
- ExpressionsCollectionConverter.cs
- GridViewHeaderRowPresenter.cs
- xmlfixedPageInfo.cs
- AutomationPattern.cs
- HostedTcpTransportManager.cs
- NetworkCredential.cs
- XamlHostingSectionGroup.cs
- HttpRequestWrapper.cs
- CryptoApi.cs
- ParsedAttributeCollection.cs
- AnyReturnReader.cs
- WebBrowsableAttribute.cs
- _AuthenticationState.cs
- ActivityExecutorOperation.cs
- SmiEventSink_DeferedProcessing.cs
- PersonalizationProviderHelper.cs
- BitmapVisualManager.cs
- Symbol.cs
- KnownColorTable.cs
- UiaCoreApi.cs
- ObjectViewListener.cs
- GPStream.cs
- BindingNavigator.cs
- Internal.cs
- ResourceType.cs
- ProcessManager.cs
- Pair.cs
- Matrix.cs
- XmlJsonWriter.cs
- Function.cs
- RSAPKCS1SignatureDeformatter.cs
- Thread.cs
- DataGridColumnEventArgs.cs
- ModuleElement.cs
- SchemaObjectWriter.cs
- RegexWorker.cs
- VectorValueSerializer.cs
- CollectionBuilder.cs
- NavigationWindowAutomationPeer.cs
- MemoryFailPoint.cs
- Selector.cs
- COM2AboutBoxPropertyDescriptor.cs
- IncrementalHitTester.cs
- WindowsSlider.cs
- DBCSCodePageEncoding.cs
- LOSFormatter.cs
- JoinSymbol.cs
- ConsoleTraceListener.cs
- thaishape.cs
- AssociationEndMember.cs
- RestHandler.cs
- ConfigurationSchemaErrors.cs
- _IPv4Address.cs
- PropertySegmentSerializer.cs
- Positioning.cs
- ClientProxyGenerator.cs
- WebRequest.cs
- ProxyWebPartConnectionCollection.cs
- RectangleConverter.cs
- TraceRecord.cs
- BinHexDecoder.cs
- ChannelSinkStacks.cs
- AssemblyHelper.cs
- SelectionProcessor.cs
- XpsFilter.cs
- StylusPointProperties.cs
- DataGridViewRowsAddedEventArgs.cs
- X509SecurityTokenAuthenticator.cs
- SpecialNameAttribute.cs
- ProfileGroupSettingsCollection.cs
- StateDesigner.Layouts.cs
- ProcessHostConfigUtils.cs
- WebDisplayNameAttribute.cs
- WindowsTab.cs
- StringFormat.cs
- Assert.cs
- ReachSerializerAsync.cs
- CustomErrorCollection.cs
- MeshGeometry3D.cs
- TrackBar.cs
- DataGridViewDataConnection.cs
- NestedContainer.cs
- WebPartMinimizeVerb.cs
- PrintEvent.cs
- WebPartConnection.cs
- AuthenticationSection.cs
- DiscreteKeyFrames.cs
- XmlSortKey.cs
- SendContent.cs
- SmtpLoginAuthenticationModule.cs
- WsdlImporterElement.cs
- PropertyPathWorker.cs
- IndexExpression.cs
- DataControlField.cs
- CancelEventArgs.cs
- AxHost.cs
- SelectionService.cs
- EventLogTraceListener.cs