设置UserControl的Location-Attribute不会更新y值

时间:2014-03-11 11:37:27

标签: c# winforms location autoscroll

我有UserControl(winforms)放在表格上(实际上是Weifen.Luo.DockContent,再次来自基本表格)。 {* 1}}已为表单启用,并且可以通过拖动来移动控件(更准确地说,通过评估AutoScrollMouseDownMouseMove并更新MouseUp })。

有时*到达边界时(因此必须进一步放大表格的平面)更新控制位置突然停止工作;设置Location失败。为了演示在调试时来自即时窗口的片段:

Location = ..

但更新后......

>Location
{X = 50 Y = 751}
    IsEmpty: false
    X: 50
    x: 50
    Y: 751
    y: 751

.. y值仍然保持不变。怎么会这样?似乎附加了一个LocationChanged-Handler(外部用户代码)对我起作用。任何提示?

*)虽然我无法在发生确切的情况时找到确切的案例,但我找到了重现它的方法,例如:将文本框聚焦到控件上然后将其移动到边缘或向控件添加(空!)>Location = new Point(30, 40); >Location {X = 30 Y = 751} IsEmpty: false X: 30 x: 30 Y: 751 y: 751 事件处理程序时 - 很奇怪。我知道这听起来更像是竞争条件。但目前我还不知道该去哪里搜索。


更新:每次更新失败时,父表单Load都会更新,从而导致 delta(之前和之后的AutoScrollPosition)= delta(Location,newValueForLocation)

0 个答案:

没有答案