检测Control.PreferredSize更改

时间:2014-05-15 14:42:27

标签: c# winforms resize scroll

我遇到以下情况: 我有一个UserControl CustomControl,可以被视为第三方(我无法访问代码来更改此CustomControl的内部条件)。此控件动态取决于用户的输入:复选框用于隐藏某些高级设置。 CustomControl没有任何事件让我可以保留与显示高级属性相关的事件。

此控件托管在UserControlHost中。 CustomControlDock内停靠(Host =填充)。

Host本身用于可停靠面板内,预计从左边缘延伸到右边缘。由于此要求,大多数其他控件使用Dock = Fill for this。

问题是,隐藏的高级属性列表足够长,需要垂直滚动条,但不能隐藏高级属性。目前,由于Host使用Fill停靠,停靠面板中根本不会显示任何滚动条,导致某些属性从屏幕上掉落并导致CustomControl无法使用。

我知道如果我想在CustomControl内使用Fill保持Host停靠,那么我需要使用AutoScrollMinSize并使其与Host的{​​{1}同步}}。 由于PreferredSize可以被视为第三方,因此此链接(How can I detect when Control.PreferredSize changes?)中提出的解决方案对我来说不是一个选项。聆听CustomControl事件似乎并没有捕捉到小熊控制的动态隐藏和揭示。

0 个答案:

没有答案