2013-04-24 26 views
0

我遇到了一個問題,我不知道該如何解決。 我正在爲我工​​作的公司創建一個程序。該計劃必須寫下我們運輸發送的交付頁面,因爲目前該公司已爲每個交付一個超過100個excel文件。與熱點圖片中的選項卡

我現在得到的是一個帶圖片的圖片框,該圖片有16個熱點。 與熱點我的意思是矩形(邊界)知道用戶點擊了圖像上的哪個部分,因爲該部分需要被選中。到目前爲止沒有問題。但我唯一的問題是當按Tab鍵時。

如何在按下選項卡按鈕時從圖像上的矩形切換到另一個矩形。因爲在矩形邊界上沒有tabstop。

我已經嘗試使用tabstop添加自定義控件,並且工作得很好,但後來我遇到了必須寫入內容的數據僅限於該區域的問題。所以我需要直接在圖像上繪製它,所以使用控件對我來說不是一種選擇。

希望我的描述足夠清晰,不用隨意問。

+0

您可以僞造它,我想你可以繪製一個矩形在屏幕上,但只是覆蓋了標籤一個按鍵,這將增加一個整型變量的指標這涉及到某種列表 – Sayse 2013-04-24 06:36:12

+0

這實際上可以工作。真的沒有想到這一點。我可以嘗試。 Thx的想法。有時候你會發現一些非常複雜的東西,就像那樣簡單 – 2013-04-24 06:57:51

+0

不用擔心:)我暫時不會讓它成爲你的答案,因爲我想有人可能有一個實際的解決方案,但我已經在過去。 – Sayse 2013-04-24 06:59:48

回答

0

我設法解決我自己的墊層代碼問題

protected override bool ProcessDialogKey(Keys keyData) 
     { 
      int selectionIndex = pBoundsCollection.IndexOf(pSelection); 
      if (keyData == Keys.Tab) 
      { 
       while (selectionIndex++ <= pBoundsCollection.Count) 
       { 
        if (selectionIndex >= pBoundsCollection.Count) 
        { 
         selectionIndex = 0; 
         pSelection = (CMRField)pBoundsCollection[selectionIndex]; 
         Refresh(); 
         break; 
        } 
        if (((CMRField)pBoundsCollection[selectionIndex]).IsSelectable) 
        { 
         pSelection = (CMRField)pBoundsCollection[selectionIndex]; 
         Refresh(); 
         return false; 
        } 
       } 
      } 
      return base.ProcessDialogKey(keyData); 
     }