gpt4 book ai didi

c# Panel with auto scroll - 在控件焦点上重置滚动条位置

转载 作者:可可西里 更新时间:2023-11-01 03:14:11 25 4
gpt4 key购买 nike

这是一个 Windows 窗体。

面板有 AutoScroll = True

我正在向主面板动态添加面板,最终超出了主面板显示矩形。然后将标签、组合框和文本框添加到添加的面板。

如果我选择一个组合框或文本框,它会将主面板滚动条位置重置为 0,并且组合框的下拉菜单将放置在屏幕 X、Y 上,如果没有滚动条,它应该位于该位置重置。

我正在考虑在选择控件时保存滚动位置。经过测试,滚动位置似乎尚未重置,因此我可以在此处捕获它。然后我希望在面板的某个事件上恢复滚动位置。 我正在尝试找出我将使用什么事件来恢复滚动位置。我也希望下拉菜单在我执行此操作时将放置在正确的 x,y 处。

更好的解决方案是创建一个基于面板控件的自定义控件并可能覆盖一个事件?这样我就不需要在每次使用滚动面板时都保存滚动位置而使我的项目变得困惑。

最佳答案

我在这里找到了问题的答案: Answer

public class CustomPanel : System.Windows.Forms.Panel
{
protected override System.Drawing.Point ScrollToControl(System.Windows.Forms.Control activeControl)
{
// Returning the current location prevents the panel from
// scrolling to the active control when the panel loses and regains focus
return this.DisplayRectangle.Location;
}
}

关于c# Panel with auto scroll - 在控件焦点上重置滚动条位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9306975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com