如何在c#中为流布局面板创建自定义滚动按钮

问题描述 投票:1回答:2

我必须为流动布局面板项目创建向上和向下按钮垂直滚动。我该怎么办?我会为POS做这个表格。

我这样做但它不起作用:我有很多按钮,它们有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();


    }
c# winforms flowlayoutpanel
2个回答
1
投票

或者,您可能只想将“AutoScroll”设置为false,以下代码实现正确的编程滚动:

 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
投票

你试图实现什么类型的滚动,这段代码是你吗?

How to Programmatically Scroll a Panel

这允许您滚动每个控件,而不是“平滑”滚动,但我认为这将适用于您的应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.