添加滚动事件以重绘窗体
本文关键字:窗体 滚动 事件 添加 | 更新日期: 2023-09-27 18:35:27
我是C#的新手,我正在通过在用户单击表单的位置放置一个点来进行实验。我正在使用最大尺寸为 640 x 480 的 300 x 200 表单。使用窗体的 AutoScrollMinSize 属性,我设置了此最大大小:
this.AutoScrollMinSize = new Size(640, 480);
我可以在表单上放置点,但是一旦我滚动出可见区域,这些点就会消失。由于我手动创建了滚动区域,因此我正在寻找一种方法来添加将调用this的滚动事件处理程序。Invalidate() 在滚动发生时重新绘制表单。任何建议将不胜感激。
这是我所拥有的:
public Form1()
{
InitializeComponent();
this.AutoScrollMinSize = new Size(640, 480);
vScrollBar vScrollBar1 = new VScrollBar();
vScrollBar1.Scroll += new ScrollEventHandler(this.vScrollBar1_Scroll);
}
以下是我调用事件处理程序的方式:
private void vScrollBar1_Scroll(Object sender, ScrollEventArgs e)
{
this.Invalidate();
}
我从Microsoft文档中得到了这个例子,但是当我垂直滚动时,绘图仍然消失,所以我知道表单没有重新绘制。
你不需要那个VScrollBar控件(无论如何你从未添加到窗体中)。
只需覆盖表单的 OnScroll 方法:
protected override void OnScroll(ScrollEventArgs se) {
base.OnScroll(se);
this.Invalidate();
}
尝试将您的活动置于困境中
和使用http://msdn.microsoft.com/en-us/library/system.windows.forms.splitter.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.scrollbar.aspx
如何在窗口窗体中设置滚动条
并设置
vScrollBar.visible = true and if it is in pannel or form set AutoScroll = true