簡體   English   中英

如何在toolstripmenuitem中查看水平滾動

[英]How to view Horizontal scroll in the toolstripmenuitem

我創建了一個 toolstipmenuitem,其中我添加了很多 toolstripmenuitems 作為子菜單。 然后我限制了 toolstripmenuitem 的最大大小,這導致:

在此處輸入圖像描述

如鏡像所顯示,垂直滾動自動地變得啟用。

但我需要水平滾動。 有什么辦法可以做到這一點?

一個可行的解決方案:

  1. 在窗體的 Load 事件中注冊ToolStripDropDownMouseWheelOpenedClosed事件
    dropDown.Opened+= new EventHandler(dropDown_Opened);
    dropDown.Closed+= new ToolStripDropDownClosedEventHandler(dropDown_Closed);
    dropDown.MouseWheel+= new MouseEventHandler(dropDown_MouseWheel);
  1. 添加模擬按鍵的鍵盤 class 的代碼
    public static class Keyboard
    {            
         [System.Runtime.InteropServices.DllImport("user32.dll")]
         static extern uint keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
         const byte VK_UP = 0x26; // Arrow Up key
         const byte VK_DOWN = 0x28; // Arrow Down key
         const int KEYEVENTF_EXTENDEDKEY = 0x0001; //Key down flag, the key is going to be pressed
         const int KEYEVENTF_KEYUP = 0x0002; //Key up flag, the key is going to be released
         public static void KeyDown()
         {
             keybd_event(VK_DOWN, 0, KEYEVENTF_EXTENDEDKEY, 0);
             keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
         }
         public static void KeyUp()
         {
            keybd_event(VK_UP, 0, KEYEVENTF_EXTENDEDKEY, 0);
            keybd_event(VK_UP, 0, KEYEVENTF_KEYUP, 0);
         }
    }           
  1. 添加OpenedClosedMouseWheel事件的代碼:
    bool IsMenuStripOpen  = false;
    void dropDown_MouseWheel(object sender, MouseEventArgs e)
    {
        if (IsMenuStripOpen)
        {
            if (e.Delta > 0)
            {
                Keyboard.KeyUp();
            }
            else
            {
                Keyboard.KeyDown();
            }
        }
    }
    void dropDown_Closed(object sender, ToolStripDropDownClosedEventArgs e)
    {
        IsMenuStripOpen = false;
    }
    void dropDown_Opened(object sender, EventArgs e)
    {
        IsMenuStripOpen = true;
    }
  1. 為項目 1 的所有系統創建全局功能
    void dropDownMenuScrollWheel(ToolStripDropDown dropDown)
    {
        dropDown.Opened +=new EventHandler(dropDown_Opened);
        dropDown.Closed +=new ToolStripDropDownClosedEventHandler(dropDown_Closed);
        dropDown.MouseWheel += new MouseEventHandler(dropDown_MouseWheel);
   }

ToolStripDropDown 是ToolStripMenuItem.DropDown

希望對你有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM