FormatStringEditor.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / FormatStringEditor.cs / 1 / FormatStringEditor.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.Windows.Forms.Design.FormatStringEditor..ctor()")] 
 
namespace System.Windows.Forms.Design {
 
    using System;
    using System.ComponentModel;
    using System.ComponentModel.Design;
    using System.Diagnostics; 
    using System.Drawing;
    using System.Drawing.Design; 
    using System.Windows.Forms; 

    ///  
    /// 
    ///    Provides an editor to edit advanced binding objects.
    /// 
    internal class FormatStringEditor : UITypeEditor { 

        private FormatStringDialog formatStringDialog; 
 
        /// 
        ///  
        ///    Edits the specified value using the specified provider
        ///       within the specified context.
        /// 
        public override object EditValue(ITypeDescriptorContext context,  IServiceProvider  provider, object value) { 
            if (provider != null) {
                IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); 
 
                if (edSvc != null) {
                    DataGridViewCellStyle dgvCellStyle = context.Instance as DataGridViewCellStyle; 
                    ListControl listControl = context.Instance as ListControl;

                    Debug.Assert(listControl != null || dgvCellStyle != null, "this editor is used for the DataGridViewCellStyle::Format and the ListControl::FormatString properties");
 
                    if (formatStringDialog == null) {
                        formatStringDialog = new FormatStringDialog(context); 
                    } 

                    if (listControl != null) { 
                        formatStringDialog.ListControl = listControl;
                    } else {
                        formatStringDialog.DataGridViewCellStyle = dgvCellStyle;
                    } 

                    IComponentChangeService changeSvc = (IComponentChangeService)provider.GetService(typeof(IComponentChangeService)); 
                    if (changeSvc != null) { 
                        if (dgvCellStyle != null) {
                            changeSvc.OnComponentChanging(dgvCellStyle, TypeDescriptor.GetProperties(dgvCellStyle)["Format"]); 
                            changeSvc.OnComponentChanging(dgvCellStyle, TypeDescriptor.GetProperties(dgvCellStyle)["NullValue"]);
                            changeSvc.OnComponentChanging(dgvCellStyle, TypeDescriptor.GetProperties(dgvCellStyle)["FormatProvider"]);
                        } else {
                            changeSvc.OnComponentChanging(listControl, TypeDescriptor.GetProperties(listControl)["FormatString"]); 
                            changeSvc.OnComponentChanging(listControl, TypeDescriptor.GetProperties(listControl)["FormatInfo"]);
                        } 
                    } 

                    edSvc.ShowDialog(formatStringDialog); 
                    formatStringDialog.End();

                    if (formatStringDialog.Dirty) {
                        // since the bindings may have changed, the properties listed in the properties window 
                        // need to be refreshed
                        TypeDescriptor.Refresh(context.Instance); 
                        if (changeSvc != null) { 
                            if (dgvCellStyle != null) {
                                changeSvc.OnComponentChanged(dgvCellStyle, TypeDescriptor.GetProperties(dgvCellStyle)["Format"], null, null); 
                                changeSvc.OnComponentChanged(dgvCellStyle, TypeDescriptor.GetProperties(dgvCellStyle)["NullValue"], null, null);
                                changeSvc.OnComponentChanged(dgvCellStyle, TypeDescriptor.GetProperties(dgvCellStyle)["FormatProvider"], null, null);
                            } else {
                                changeSvc.OnComponentChanged(listControl, TypeDescriptor.GetProperties(listControl)["FormatString"], null, null); 
                                changeSvc.OnComponentChanged(listControl, TypeDescriptor.GetProperties(listControl)["FormatInfo"], null, null);
                            } 
                        } 
                    }
                } 
            }

            return value;
        } 

        ///  
        ///  
        ///    Gets the edit style from the current context.
        ///  
        public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) {
            return UITypeEditorEditStyle.Modal;
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK