我正在尝试创建一个双按钮来滚动我的面板(向上和向下)
我的Scroll DownButton
private void button_Category_Down_Click(object sender, EventArgs e)
{
int CurrentVal = flowLayoutPanel_Categories.VerticalScroll.Value;
if (value > CurrentVal)
{
value = CurrentVal - 75;
return;
}
value += 70;
flowLayoutPanel_Categories.AutoScrollPosition = new Point(0, value);
}
向上滚动按钮
private void button_Category_Up_Click(object sender, EventArgs e)
{
if (value <= 0)
{
value = 0;
return;
}
value -= 75;
flowLayoutPanel_Categories.AutoScrollPosition = new Point(0, value);
}
我的代码工作正常但是如果面板属性[AutoScroll]设置为true
当autoscroll为true时,ScrollBar将为Visible
我如何拥有滚动条
我试过
private const int SB_BOTH = 3;
private const int WM_NCCALCSIZE = 0x83;
[DllImport("user32.dll")]
private static extern int ShowScrollBar(IntPtr hWnd, int wBar, int bShow);
protected override void WndProc(ref Message m)
{
ShowScrollBar(flowLayoutPanel_Categories.Handle, SB_BOTH, 0 /*Hide the ScrollBars*/);
base.WndProc(ref m);
}
但它可能不起作用
如果我将autoscroll设置为false,按钮将不起作用
抱歉我的英语不好,谢谢答案 0 :(得分:0)
更新了Windows窗体的答案:
是的,所以我更新了我的anser来解决你的评论,你说这是一个Windows Forms项目,而不是像我根据你的模拟图像假设的UWP项目。
我现在能想到的唯一快速方法(实际上更像是一种解决方法)是将您的面板嵌入一个小于内容面板的容器中,使滚动条区域落在显示区域之外(请参见下图),或者只是在面板上放置另一个对象,使其覆盖滚动条区域。
请记住在您的程序支持的所有Windows版本中检查您的设计。某些Windows主题(即Windows 10)可以为滚动条保留更少或更多的空间,从而导致部分可见的滚动条或剪切的容器内容。还要看看当内容不需要滚动时会发生什么。在某些Windows版本的情况下,将滚动设置为自动可能会完全隐藏滚动条,因此如果内容填满面板,内容可能会被剪裁。
UWP解决方案:
在UWP Windows 10应用中,您可以右键单击设计器窗口中的对象&gt;编辑模板&gt;编辑副本并编辑所选组件的子组件上的外观
然后,您只需编辑滚动查看器组件,帽子应该是面板的一部分,并将Vetical滚动条设置为false。