[英]How to view Horizontal scroll in the toolstripmenuitem
I have created a toolstipmenuitem in which i added a lot of toolstripmenuitems as sub menus.我创建了一个 toolstipmenuitem,其中我添加了很多 toolstripmenuitems 作为子菜单。 And then i restricted the maximum size of the toolstripmenuitem which results in:
然后我限制了 toolstripmenuitem 的最大大小,这导致:
Vertical scrolling automatically becomes enabled as shown in the image.如镜像所显示,垂直滚动自动地变得启用。
But I need a horizontal scrolling.但我需要水平滚动。 Is there any way to achieve this?
有什么办法可以做到这一点?
A working solution:一个可行的解决方案:
MouseWheel
, Opened
, Closed
event of your ToolStripDropDown
in the Load event of the formToolStripDropDown
的MouseWheel
、 Opened
、 Closed
事件 dropDown.Opened+= new EventHandler(dropDown_Opened);
dropDown.Closed+= new ToolStripDropDownClosedEventHandler(dropDown_Closed);
dropDown.MouseWheel+= new MouseEventHandler(dropDown_MouseWheel);
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);
}
}
Opened
, Closed
, MouseWheel
events:Opened
、 Closed
、 MouseWheel
事件的代码: 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;
}
void dropDownMenuScrollWheel(ToolStripDropDown dropDown)
{
dropDown.Opened +=new EventHandler(dropDown_Opened);
dropDown.Closed +=new ToolStripDropDownClosedEventHandler(dropDown_Closed);
dropDown.MouseWheel += new MouseEventHandler(dropDown_MouseWheel);
}
ToolStripDropDown is ToolStripMenuItem.DropDown
ToolStripDropDown 是
ToolStripMenuItem.DropDown
Hope it help you.希望对你有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.