2017-12-18 271 views
0

我必須爲流佈局面板項目創建向上和向下按鈕垂直滾動。我該怎麼辦?我會爲POS做這個表格。如何在c#中爲流佈局面板創建自定義滾動按鈕#

我這樣做,但它不工作:我有很多按鈕,他們有87尺寸高度:我添加了代碼和圖片。

flowlayoutexample

private void btnScrollUp_Click(object sender, EventArgs e) 
    { 


     flowLayoutPanel1.VerticalScroll.Value = flowLayoutPanel1.VerticalScroll.LargeChange-1 ; 
     flowLayoutPanel1.PerformLayout(); 



    } 

    private void btnScrollDown_Click(object sender, EventArgs e) 
    { 


     flowLayoutPanel1.VerticalScroll.Value = flowLayoutPanel1.VerticalScroll.LargeChange+ 1; 
     flowLayoutPanel1.PerformLayout(); 


    } 
+0

的這不起作用的關鍵原因之一是你用=代替+ =/- =,但該值的財產行爲奇怪與+ =無論如何,看到我的答案下面的一個完整的答案,修復你在這裏做了什麼:) – chrispepper1989

+0

出於興趣你爲什麼要在代碼中做它?爲什麼不使用flowLayoutPanel1.AutoScroll = true; flowLayoutPanel1.VerticalScroll.Visible = true; – chrispepper1989

+1

因爲這個程序將使用觸摸屏機。所以我必須把大按鈕滾動:) –

回答

1

或者你可能只是想設置「自動滾動」假下面的代碼實現適當的編程滾動:

public Form1() 
    { 
     InitializeComponent(); 
     flowLayoutPanel1.AutoScroll = false; 

    } 

    public int scrollValue = 0; 
    public int ScrollValue 
    { 
     get 
     { 


      return scrollValue; 
     } 
     set 
     { 
      scrollValue = value; 

      if (scrollValue < flowLayoutPanel1.VerticalScroll.Minimum) 
      { 
       scrollValue = flowLayoutPanel1.VerticalScroll.Minimum; 
      } 
      if (scrollValue > flowLayoutPanel1.VerticalScroll.Maximum) 
      { 
       scrollValue = flowLayoutPanel1.VerticalScroll.Maximum; 
      } 

      flowLayoutPanel1.VerticalScroll.Value = scrollValue; 
      flowLayoutPanel1.PerformLayout(); 

     } 
    } 
    private void Add_Control(object sender, EventArgs e) 
    { 
     flowLayoutPanel1.Controls.Add(new Button(){Width = flowLayoutPanel1.Width, Height = 87}); 
    } 

    private void UpClick(object sender, EventArgs e) 
    { 
     ScrollValue -= flowLayoutPanel1.VerticalScroll.LargeChange; 

    } 

    private void DownClick(object sender, EventArgs e) 
    { 
     ScrollValue += flowLayoutPanel1.VerticalScroll.LargeChange; 
    } 
+0

嗨@ chrispepper1989它不工作,它給這個問題{「110的價值'''價值'無效。 '值'應介於'最小'和'最大'之間。\ r \ n參數名稱:值「} –

+0

請參閱修改後的代碼,以添加保護措施:) – chrispepper1989

+0

ps你可能也想檢查一下你的「flowLayoutPanel1.VerticalScroll.LargeChange」設置爲什麼。如果它設置爲高到不僅會馬上脫離最小/最大值,但你永遠不會看到它移動:)將其設置爲5或某事開始 – chrispepper1989