2012年3月17日 星期六

與使用者控制項的激戰系列 第一彈 Form標題click事件

外表看似簡單 難度卻異於常人 的控制項comboBox

comboBox本身當然沒什麼好難的

但是如果想要用 TextBox + ListBox + Button 硬是湊成一個偽comboBox卻沒想像簡單

光是標題就是難題了

什麼意思呢? 舉例來說這是一個comboBox展開下拉的狀態

如果這時候點了Form標題 他就把下拉選單收合起來

那好了要怎麼在Form觸發點擊標題的事件?

事實上的答案就是 - 辦不到

因為打內法蘭克先生根本沒處理標題的事件

預設form的mousedown mouseup mouseclick事件 也都是在點擊標題列下面的區域才能觸發 與標題無關

此時膜拜csdn

http://topic.csdn.net/u/20091015/11/56540da1-3c57-487f-9f31-2e1c60c1813c.html

四樓表示這裡都是都是放牛的人 十分牛B

 

 

 

 

以下備忘記錄



        private void Form1_Load(object sender, EventArgs e) {
            this.TitleClick += new EventHandler(Form1_TitleClick);
        }

        void Form1_TitleClick(object sender, EventArgs e) {
            listBox1.Visible = false;

        }

        /// <summary>  
        /// 消息处理  
        /// </summary>  
        /// <param name="m"></param>  
        protected override void WndProc(ref Message m) {
            //系统消息
            if (m.Msg == 0x0112 && m.WParam.ToInt32() == 61458) {
                if (TitleClick != null) TitleClick(this, null);
            }
            base.WndProc(ref m);
        }
        public event EventHandler TitleClick;


沒有留言:

張貼留言