簡體   English   中英

C#隱藏面板滾動條

[英]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即可。

更改子對象的屬性,在這種情況下為Scrollviewer

暫無
暫無

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

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