我有一个打开自动滚动的表单,并且表单中有一个用户可编辑区域。用户可以调整控件大小或移动控件。
移动控件时,如果它们移出窗体的工作区,则会显示滚动条。这是我的意图。
现在,表单将自动向下滚动,因此当用户不释放鼠标时,控件将继续向下移动。这显然不是有意的。
我尝试在移动(或调整大小)开始时禁用自动滚动,但效果不佳...如果控件超出表单的客户端范围,一旦移动开始,它就会向上移动(或向左移动)。
当我移动子控件时如何锁定滚动条?
---编辑:示例代码---
只是一个关于移动控件的例子。
//Start moving if the button is clicked on
public void Button1_OnMouseDown()
{
_moving=true;
}
//If the button was clicked on, move it to mouse position
public void OnMouseMove(object sender, MouseEventArgs e)
{
if(_moving)
Button1.Location=new Poiny(e.X, e.Y);
}
当我移出表单边界时,滚动条会出现并开始向下/向右滚动以适应控件...这又会移动控件,因为存在鼠标移动事件,等等...
您可以防止Form
or Panel
通过覆盖滚动ScrollToControl
方法,例如:
protected override Point ScrollToControl(Control activeControl) {
Point pt = this.AutoScrollPosition;
return pt;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)