c# panel嵌套panel 弹窗后自动滚动到最上方 bug

作者分享了如何在C#中避免因Panel控件重绘导致滚动条问题的传统继承方法,转而采用`ScrollControlIntoView`函数,解决了弹窗关闭时的自动滚动问题。尽管还有些滚动,但这种方法比继承更为便捷,但底层逻辑仍需进一步理解。
摘要由CSDN通过智能技术生成

在网上看到解决方法,但都不是自己想要的方法。然后就是都是重写继承panel的方法来进行。单着我认为不是一个好方法。
关于C#的Panel控件重绘后滚动条跳动的问题
可以参照一下。
而我认为不是好方法的原因是:
当使用继承的类的时候,所使用的design界面会打不开,从而导致一系列非常麻烦的问题。我不知道是不是要重新设置界面。
然后就是我立刻放弃了这个方法。
虽然这个方法是可以工作的。

但是我不死心,我试图寻找可以不需要重新继承类的方法。然后就是去到继续搜索。
最后还是搜索不出什么来。
不过我在机缘巧合下,发现了另一个方法,就算使用Panel.ScrollControlIntoView()
这个方法我尝试了一下,是将panel滚动到显示指定控件的地方。当我在出现弹窗后关闭弹窗的时候,就调用这句话,就能够解决自动滚动的问题了。
另外,我使用其他的代码,就是另一个项目,都不会出现这种情况。不知道是为啥。
对于底层的逻辑还是没有真正搞清楚。
希望能够帮到大家。
我是在this.panel2.ScrollControlIntoView(panel_listbox);
调用完成后就相当于是围魏救赵,曲线救国的方式,虽然还会有些滚动,但是不至于滚动到最上方。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值