Board logo

主題: [其他] [C#][問題]tabpage加入事件 [打印本頁]

發表人: H.T.DEMON    時間: 2008-6-28 09:47 PM     主題: [C#][問題]tabpage加入事件

想請教是否有辦法將tabpage套入KeyDown的事件

我寫了兩組KeyDown事件,兩組事件都用到同樣的按鍵去做觸發,但是觸發不同的function,所以也無法將KeyDwon事件丟到tabControl裡頭

搞不懂為什麼tabpage可以套入Mouse事件卻不能套入Key事件
發表人: oislone    時間: 2008-6-29 02:54 PM

不能自已加 EVENT 嗎 ?
雖然要自己手寫加上, 可是會比較方便~
也不會受限原有的 CLASS 限制~
除非原有的 CLASS 把 KeyDown 設為不可繼承而且是保護~
發表人: H.T.DEMON    時間: 2008-6-29 11:24 PM

可以在程式碼中寫事件 但是tabpage的屬性頁好像沒有KeyDown事件選項可以去套用

CODE:
[Copy to clipboard]
private void tabPage1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            if (e.KeyCode == Keys.F5)         
                doit(1);
            else if (e.KeyCode == Keys.F9)
                clsit(1);
        }
private void tabPage2_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            if (e.KeyCode == Keys.F5)         
                doit(2);
            else if (e.KeyCode == Keys.F9)
                clsit(2);
        }
極端一點的做法好像就只能把兩個KeyDown事件寫在一塊 然後當按下按鈕時兩個頁面都會觸發事件了...

CODE:
[Copy to clipboard]
private void tabPage2_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            if (e.KeyCode == Keys.F5)
                doit(1)         
                doit(2);
            else if (e.KeyCode == Keys.F9)
                clsit(1)
                clsit(2);
        }

發表人: oislone    時間: 2008-6-30 12:17 AM

沒錯~ 是要自己設計 EVENT~
你可以參考一下 http://www.developerfusion.co.uk/show/274 此頁~
不過這比較像是使用 WINDOWS 界面, 有點脫離 NET 的封裝觀念~
或者換用 NET 的 KeyBoard 類別, 也許會更好.

然後使用 delegate 委派及 event 事件的作法~ 自己繼承 tabpage 物件~
那麼你自己的 tabpage 繼承物件就會有 KeyDown 功能了~

VS 的說明 :
委派是事件的基礎。                     
event 關鍵字用於在發行者 (Publisher) 類別中宣告事件。

不過要先了解 delegate 委派及 event 事件的作法才可以順利使用喔.
發表人: H.T.DEMON    時間: 2008-6-30 12:53 AM

您說的這個方法我看了,一時間還真難理解這種東西...
是不是說要用一個委派來裡頭程式碼放我原本寫的Event

然後您還說到讓tabpage 繼承物件 這個部份還是不知道怎麼做
可否請您提供個範例當作參考 感謝
發表人: oislone    時間: 2008-7-2 11:05 PM

要晚一點~ 最近手上工作比較多, tablpage 也沒用過, 之前都是寫 button 的事件,
等空一些, 我再來研究 tabcontrol 的部份~
發表人: H.T.DEMON    時間: 2008-7-4 12:26 AM


引用:
oislone寫到:
要晚一點~ 最近手上工作比較多, tablpage 也沒用過, 之前都是寫 button 的事件,
等空一些, 我再來研究 tabcontrol 的部份~

後來找到解法了 讓tabcontrol套入KeyDown事件,事件裡面加入一個判斷來目前的tabpageIndex
藉由Index來區別做出不同回應,即達成我想要的按下同個按鈕但是能夠區分目前是在哪一個tabpage

不曉得oislone您知不知道怎麼讓一個.mdb成為內嵌資源然後讓程式編譯出來後就內含那個.mdb
然後程式就是讀取成為內嵌資源的.mdb裡面的資料
初略的曉得怎麼將.mdb轉為內嵌資源,但是卡在說oleDBConnection的ConnectionString需要給Data Source路徑
再來我就不曉得該怎麼將成為內嵌資源的mdb套入給Data Source路徑




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0