我的表单有一个面板,它有一个内部面板。我在父面板中有一个 VScrollBar,它滚动内部面板。一切正常。但是,如果我继续单击 VSCrollBar 的上/下 zip,滚动条似乎会崩溃。
通过一些调查,我了解到,它不断向表单发送 WM_LBUTTONDOWN 消息并再次路由回面板,这触发了我的外部面板的 UpdateBounds()。这使我的面板遍布整个表单,我无法在整个表单上看到任何其他控件。
有人遇到过这个问题吗?是否有任何解决方法或解决方法?
这里有一些关于这个滚动条冻结问题的更多细节。
private void vsBar_ValueChanged(object sender, EventArgs e)
{
UpdatePicTops();
}
private void UpdatePicTops()
{
pnlNames.Top = (int)VB6.TwipsToPixelsY(-vsBar.Value);
pnlValues.Top = (int)VB6.TwipsToPixelsY(-vsBar.Value);
}
我有一个包含 pnlNames 和 pnlValues 的 pnlContainer。
pnlContainer 有 vsBar(垂直滚动条),当它超出时,它会根据我的 pnlNames/pnlValues 高度完美滚动。
我在表单加载期间根据子面板高度设置 vsBar 属性。
当我继续单击 vsBar 上的向上和向下 zip 按钮时,突然使滚动条出现意外的行为。突然上下 zip 按钮消失,然后每次单击我的 vsBar 都会向父表单发送一个 WM_LBUTTONDOWN 按钮,这会再次触发 UpdateBounds() ,而我的 pnlContainer 没有任何参数,这使得我的 pnlContainer 高度和宽度等于我的表单高度和宽度。
如果您有任何问题,请随时提问。