天天看點

為groupbox,panel。。。加滾動條

添加一個vScrollBar控件到目标控件上面

       public OrderPayManage()

        {

            InitializeComponent();

            foreach (Control controls in groupbox.Controls)

            {

                if (controls is VScrollBar) continue;

                controls.Tag = controls.Location.Y;

            }

        }

  private void vScrollBar1_Scroll(object sender, ScrollEventArgs e)

        {

            foreach (Control controls in groupbox.Controls)

            {

                if (controls is VScrollBar) continue;

                controls.Location = new Point(controls.Location.X, (int)controls.Tag - e.NewValue);

            }

        }

将panel的AutoScroll的屬性設為ture就可以顯示滾動條了了

panel的滾動條随滑鼠滑輪滾動而移動

private void MessageDetail_Load(object sender, EventArgs e)

        {

            //注冊事件 

            this.MouseWheel += new MouseEventHandler(FormSample_MouseWheel); 

        }

        ///   <summary> 

        ///   滾動方法 

        ///   </summary> 

        ///   <param   name= "sender "> </param> 

        ///   <param   name= "e "> </param> 

        void FormSample_MouseWheel(object sender, MouseEventArgs e)

        {

            //擷取光标位置 

            Point mousePoint = new Point(e.X, e.Y);

            //換算成相對本窗體的位置 

            mousePoint.Offset(this.Location.X, pnlMessage.Location.Y);

            //判斷是否在panel内 

            if (pnlMessage.RectangleToScreen(this.DisplayRectangle).Contains(mousePoint))

            {

                //滾動 

                pnlMessage.AutoScrollPosition = new Point(0, pnlMessage.VerticalScroll.Value - e.Delta);

            }

        } 

将panel的滾動條緻最低端

pnlMessage.VerticalScroll.Value = pnlMessage.VerticalScroll.Maximum;

如果不行就将以上代碼使用2次

richtextbox滾動條緻對低端

 //選擇richtextbox中内容的最後一個位元組 

this.richTextBox1.Select(this.richTextBox1.Text.Length, 0);

 //設定滾動到目前位置

this.richTextBox1.ScrollToCaret();

繼續閱讀