UserControl的属性不会更新y
我有一个UserControl
(winforms)放置在一个窗体上(实际上是一个Weifen.Luo.DockContent
, Weifen.Luo.DockContent
是从基本窗体派生的)。 为窗体启用AutoScroll
,并且可以通过拖动(更准确地说,通过评估MouseDown
, MouseMove
, MouseUp
和更新Location
)来移动控件。
有时*到达边界时(以便表格的飞机必须进一步放大)更新控制器的位置突然停止工作; 设置Location = ..
失败。 在调试时从即时窗口演示一个片段:
>Location
{X = 50 Y = 751}
IsEmpty: false
X: 50
x: 50
Y: 751
y: 751
但更新后...
>Location = new Point(30, 40);
>Location
{X = 30 Y = 751}
IsEmpty: false
X: 30
x: 30
Y: 751
y: 751
y值仍然保持不变。 怎么会这样? 看起来好像附有一个LocationChanged-Handler(外部用户代码),这对我很有用。 任何提示?
*)虽然我无法在发生时找到确切的案例,但我找到了重现它的方法,例如,将文本框聚焦到控件上,然后将其移动到边缘或将一个(空的!) Load
事件处理程序添加到控制 - 很奇怪。 我知道这听起来更像是一场竞赛。 但目前我不知道该去哪里寻找。
更新:每次更新失败时,父窗体的AutoScrollPosition
会被更新,结果会导致delta(AutoScrollPosition之前和之后)= delta(Location,newValueForLocation)。
上一篇: Attribute of a UserControl does not update the y
下一篇: How to change the place of textbox when changing the size of the form