请教一个纠结的winform滚动条的问题

bzcode 2012-05-04 09:09:45
在下做了一个winform,由于控件较多,又新建了一个usercontrol,把所有的控件放在usercontrol上面,然后winform加载usercontrol。winform设置autoscroll为true。

让我纠结的现象是:

同样一份程序,在本机上运行正常,按下右侧的滚动条移动过程中,所有的控件跟着移动;

但是在另外一台机器上,按下滚动条拖动的时候,控件不动,松开滚动条,则控件一次性到位,也就是说,中间拖动的时候,控件不跟着移动。这样一来,滚动条的意义就不大了。

我换了一台机器,还是这样。只有自己开发的那台机器是正常的。

请问这是怎么回事?
...全文
260 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bzcode 2012-07-01
  • 打赏
  • 举报
回复
多谢各位,其实是windows系统设置的一个属性。跟代码没有关系。
熙风 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

楼上的是响应鼠标滚轮的方法吧?非常感谢!
但是我不明白为什么同一份程序,在不同的电脑上会有那么奇怪的差异。
[/Quote]

类似的问题我经常遇到,不同电脑不一样很正常,
bzcode 2012-05-04
  • 打赏
  • 举报
回复
楼上的是响应鼠标滚轮的方法吧?非常感谢!
但是我不明白为什么同一份程序,在不同的电脑上会有那么奇怪的差异。
熙风 2012-05-04
  • 打赏
  • 举报
回复
     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);
}
}
bzcode 2012-05-04
  • 打赏
  • 举报
回复
如果不停地刷新窗口,那不就闪屏了吗?
cpio 2012-05-04
  • 打赏
  • 举报
回复
滚动事件中把窗口刷新一下可能就行了
why0826001 2012-05-04
  • 打赏
  • 举报
回复
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);
}
}

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧