⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datatypeeditor.cs

📁 wrox c#高级编程
💻 CS
字号:
using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Design;
using System.Windows.Forms.Design;

namespace SqlAdmin {
    /// <summary>
    /// </summary>
    public class DataTypeEditor: UITypeEditor {

        private DataTypePicker dataTypePicker;


        /// <summary>
        /// </summary>
        /// <param name="context">
        /// </param>
        /// <param name="provider">
        /// </param>
        /// <param name="value">
        /// </param>
        /// <returns>
        /// </returns>
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) {
            if (provider != null) {
                IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

                if (edSvc != null && context.Instance != null) {
                    if (dataTypePicker == null) {
                        dataTypePicker = new DataTypePicker();
                    }

                    // Grab TreeView property from the TreeNode so we have access to the Images property
                    //TreeView treeView = ((TreeNode)context.Instance).TreeView;

                    // Call the editor
                    string previousDataType = (string)value;
                    dataTypePicker.Start(edSvc, (string)value);
                    edSvc.DropDownControl(dataTypePicker);

                    // REVIEW: What the heck do we do here? How do we detect cancelled selections?
                    if (dataTypePicker.SelectedIndex == -1)
                        value = previousDataType;
                    else
                        value = (string)dataTypePicker.SelectedItem;
                    dataTypePicker.End();
                }
            }

            return value;
        }

        /// <summary>
        /// </summary>
        /// <param name="context">
        /// </param>
        /// <returns>
        /// </returns>
        public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) {
            return UITypeEditorEditStyle.DropDown;
        }

    }    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -