Vb.net 当一个不同的文本框被更新时,为什么面板会自动向上滚动?

Vb.net 当一个不同的文本框被更新时,为什么面板会自动向上滚动?,vb.net,winforms,visual-studio-2010,Vb.net,Winforms,Visual Studio 2010,我已经创建了一个表单,并将其显示在面板中,但遗憾的是表单无法适应。所以我需要使用Panel.Autoscroll=True来浏览整个表单 当我单击表单最低部分的textbox1.text时,面板会自动向上滚动,文本框无法显示。即使我向下滚动,它也会自动不断地向上滚动。 如何阻止它向上滚动 这是我的密码: Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Form2.TopL

我已经创建了一个表单,并将其显示在面板中,但遗憾的是表单无法适应。所以我需要使用
Panel.Autoscroll=True
来浏览整个表单

当我单击表单最低部分的
textbox1.text
时,面板会自动向上滚动,文本框无法显示。即使我向下滚动,它也会自动不断地向上滚动。 如何阻止它向上滚动

这是我的密码:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Form2.TopLevel = False 
    Me.Panel1.Controls.Clear() 
    Me.Panel1.Controls.Add(Form2) 
    Form2.Show() 
End Sub 

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick 
    Label2.Text = Date.Now.ToString("dd/MMM/yyyy ddddddddd") 
    Label1.Text = Date.Now.ToString("h:mm:ss tt")
End Sub

当日期文本设置为标签时,我意识到面板会向上滚动。有没有办法防止这种情况发生?

您可以使用自己的面板并覆盖ScrollToControl功能来解决问题:

Public Class PanelEx
  Inherits Panel

  Protected Overrides Function ScrollToControl(c As Control) As Point
    Return Me.DisplayRectangle.Location
  End Function    
End Class

重建解决方案后,请用工具箱中的新面板替换Panel1面板。

这是winforms还是asp.net?我试图重现此行为,但未能成功。您能否澄清“在面板内显示表格”?这是一个
表单
您放在另一个
表单的
面板
中吗?重新考虑您的UI设计请在问题中发布您的代码。不要把它藏在评论里。我想我会使用Hans的扩展方法:非常感谢!现在很好用。我真的很感谢你的帮助。