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

📄 datatypepicker.cs

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

namespace SqlAdmin {
    /// <summary>
    /// </summary>
    [
    ToolboxItem(false)
    ]
    public class DataTypePicker : ListBox {

        private IWindowsFormsEditorService edSvc;

        private bool keyDown = false;
        private bool mouseClicked = false;


        /// <summary>
        /// </summary>
        public DataTypePicker() {
            this.BorderStyle = BorderStyle.None;
        }


        /// <summary>
        /// </summary>
        public void End() {
            Items.Clear();
            edSvc = null;
        }

        /// <summary>
        /// </summary>
        protected void FillData() {
            /*
                        Items.Clear();

                        Items.Add(SR.GetString("ImageIndexPicker_NoImage"));

                        Debug.Assert(treeView != null, "treeView == null");

                        int count = treeView.Images.Count;
                        for (int i = 0; i < count; i++) {
                            Items.Add(i.ToString() + " - " + treeView.Images[i].Url);
                        }
            */            
            Items.Clear();

            Items.Add("bigint");
            Items.Add("binary");
            Items.Add("bit");
            Items.Add("char");
            Items.Add("datetime");
            Items.Add("decimal");
            Items.Add("float");
            Items.Add("image");
            Items.Add("int");
            Items.Add("money");
            Items.Add("nchar");
            Items.Add("ntext");
            Items.Add("numeric");
            Items.Add("nvarchar");
            Items.Add("real");
            Items.Add("smalldatetime");
            Items.Add("smallint");
            Items.Add("smallmoney");
            Items.Add("sql_varient");
            Items.Add("text");
            Items.Add("timestamp");
            Items.Add("tinyint");
            Items.Add("uniqueidentifier");
            Items.Add("varbinary");
            Items.Add("varchar");
        }

        /// <summary>
        /// </summary>
        /// <param name="e">
        /// </param>
        protected override void OnKeyUp(KeyEventArgs e) {
            base.OnKeyUp(e);

            keyDown = true;
            mouseClicked = false;

            if (e.KeyData == Keys.Return) {
                keyDown = false;
                edSvc.CloseDropDown();
            }
        }

        /// <summary>
        /// </summary>
        /// <param name="e">
        /// </param>
        protected override void OnMouseDown(MouseEventArgs e) {
            base.OnMouseDown(e);
            mouseClicked = true;
        }

        /// <summary>
        /// </summary>
        /// <param name="e">
        /// </param>
        protected override void OnMouseUp(MouseEventArgs e) {
            base.OnMouseUp(e);
            mouseClicked = false;
        }

        /// <summary>
        /// </summary>
        /// <param name="e">
        /// </param>
        protected override void OnSelectedIndexChanged(EventArgs e) {
            base.OnSelectedIndexChanged(e);

            // selecting an item w/ the keyboard is done via 
            // OnKeyDown. we will select an item w/ the mouse,
            // if this was the last thing that the user did
            if (mouseClicked && !keyDown) {
                mouseClicked = false;
                keyDown = false;
                edSvc.CloseDropDown();
            }

            return;
        }

        /// <summary>
        /// </summary>
        /// <param name="edSvc">
        /// </param>
        /// <param name="selectedDataType">
        /// </param>
        public void Start(IWindowsFormsEditorService edSvc, string selectedDataType) {
            this.edSvc = edSvc;

            // Fill in data and select the item
            FillData();

            this.SelectedIndex = this.Items.IndexOf(selectedDataType);
        }
    }
}

⌨️ 快捷键说明

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