[英]C# Hide Panel Scroll Bar
我正在嘗試創建兩個按鈕來滾動我的面板(上下)
我的向下滾動按鈕
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將可見
我如何擁有滾動條
我試過了
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);
}
但它可能無法正常工作
如果我將自動滾動設置為false,則按鈕將不起作用
對不起,我的英語不好,謝謝
更新了Windows窗體的答案:
是的,所以我更新了分析服務,以解決您的評論,在這里您聲明這是Windows Forms項目,而不是像我根據您的模型圖像所假定的UWP項目。
我現在可以想到的唯一最快的方法(實際上更像是一種解決方法)是將面板嵌入比內容面板小的容器中,以使滾動條區域位於顯示區域之外(參見圖像)下方),或只是將另一個對象放在面板上,使其覆蓋滾動條區域。
請記住在程序支持的所有Windows版本中檢查設計。 某些Windows主題(例如Windows 10)可能為滾動條保留更少或更多的空間,從而導致滾動條部分可見或容器內容被裁剪。 還要檢查當內容不需要滾動時會發生什么。 在某些情況下,在某些Windows版本上,將scroll設置為auto可能會完全隱藏滾動條,因此,如果內容填充面板,則內容可能會被剪切。
UWP解決方案:
在UWP Windows 10應用程序中,可以在設計器窗口中單擊一個對象>“編輯模板”>“編輯副本”,然后在選定組件的子組件上編輯外觀
然后,您只需編輯應該位於面板中的滾動查看器組件,並將Vetical滾動條設置為false即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.