DataGridViewCellStyleEditor.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / DataGridViewCellStyleEditor.cs / 1 / DataGridViewCellStyleEditor.cs

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

/* 
 */ 
namespace System.Windows.Forms.Design {
 
    using System.Runtime.InteropServices;

    using System.Diagnostics;
 
    using System;
    using System.ComponentModel; 
    using System.ComponentModel.Design; 
    using Microsoft.Win32;
    using System.Drawing; 
    using System.Windows.Forms;
    using System.Windows.Forms.Design;
    using System.Drawing.Design;
 
    internal class DataGridViewCellStyleEditor : UITypeEditor {
 
        private DataGridViewCellStyleBuilder builderDialog; 
        private object value;
 
        /// 
        /// 
        ///      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.
        ///  
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { 

            this.value = value; 

            Debug.Assert(provider != null, "No service provider; we cannot edit the value");
            if (provider != null) {
                IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); 
                IUIService uiService = (IUIService) provider.GetService(typeof(IUIService));
                IComponent comp = context.Instance as IComponent; 
 
                Debug.Assert(edSvc != null, "No editor service; we cannot edit the value");
                if (edSvc != null) { 
                    if (builderDialog == null) {
                        builderDialog = new DataGridViewCellStyleBuilder(provider, comp);
                    }
 
                    if (uiService != null) {
                        builderDialog.Font = (Font) uiService.Styles["DialogFont"]; 
                    } 

                    DataGridViewCellStyle dgvcs = value as DataGridViewCellStyle; 
                    if (dgvcs != null) {
                        builderDialog.CellStyle = dgvcs;
                    }
 
                    builderDialog.Context = context;
 
                    //IntPtr hwndFocus = UnsafeNativeMethods.GetFocus(); 
                    try {
                        if (builderDialog.ShowDialog() == DialogResult.OK) { 
                            this.value = builderDialog.CellStyle;
                        }
                    }
                    finally { 
                        //if (hwndFocus != IntPtr.Zero) {
                        //    UnsafeNativeMethods.SetFocus(new HandleRef(null, hwndFocus)); 
                        //} 
                    }
                } 
            }

            // Now pull out the updated value, if there was one.
            // 
            value = this.value;
            this.value = null; 
 
            return value;
        } 

        /// 
        /// 
        ///      Retrieves the editing style of the Edit method.  If the method 
        ///      is not supported, this will return None.
        ///  
        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