滚动条未响应最大值

时间:2017-11-07 16:20:30

标签: c# .net winforms

我正在尝试向Windows窗体上的面板控件添加自定义滚动条。除了最大值,每件事都很好。

该面板包含来自提供路径的文件名。为了看到滚动条,我使用了变量。将新文件添加到面板时,变量会增加。标签控件用于显示文件名。将所有文件添加到面板后。我检查一下面板视图外面是否有文件。如果有,则滚动条可见,最大值设置为所需的高度变量。所需的高度变量是控件的总高度。所有组件都通过工具添加。

以下是MainForm类的代码。

public partial class MainForm : Form
    {
        file obj=new file();
        Label[] file_names;

        public MainForm()
        {

            InitializeComponent();
// viewpanel is the name of panel to display the file name
            viewpanel.AutoScroll=false;
// viewscrollbar is the name of scroll bar associated with viewpanel
            viewscrollbar.ValueChanged+= new EventHandler(viewscroll);
            viewscrollbar.Enabled=true;
            viewscrollbar.Visible=false;
        }

视图更新面板的代码。此函数通过标签数组并将每个标签添加到viewpanel。

void updateviewpanel()
        {
         //reheight is a variavle used to calculate total height     //required.
            int reheight=0;
            int yaixs=0;
            for(int i=0;i<file_names.Length;i++)
            {

                file_names[i].Location=new Point(0,yaixs);
                file_names[i].Height=20;
                file_names[i].Width=viewpanel.Width-5;
                file_names[i].BorderStyle=BorderStyle.Fixed3D;

                yaixs=yaixs+20;
                //the reheight variable is increment each time a label is added to panel.
                reheight=reheight+20;
                viewpanel.Controls.Add(file_names[i]);

            }// end  of for loop
// check to see if required height is greater then actual height  of panel
                if(reheight>viewpanel.Height)
                    {
                            viewscrollbar.Visible=true;
                        viewscrollbar.Maximum=reheight+viewscrollbar.Height;
                        viewpanel.VerticalScroll.Enabled=false;
                        viewpanel.VerticalScroll.Visible=false;
// to output the Maximum value of scroll. 
                        label1.Text=Convert.ToString(viewscrollbar.Maximum);
                    }// end of if
            }

滚动的最大值是1390.但滚动的值不会超过100.但是,当Verticalscroll bar,buildin滚动条处于活动状态时,自定义滚动条verticalscrollbar的值超过100这对我来说毫无意义。

感谢您花时间阅读。

0 个答案:

没有答案