为什么在更新不同的TextBox.Text时,Panel会自动向上滚动?

时间:2014-12-02 14:35:05

标签: 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.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

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

1 个答案:

答案 0 :(得分:1)

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

Public Class PanelEx
  Inherits Panel

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

重建解决方案后,在ToolBox中将Panel1面板替换为这个新面板。