2

我是 Visual Basic 的新手。我已经安装了 Microsoft Visual Studio 2010。创建了一个新的 Windows 窗体应用程序。举个例子,我做了一个简单的程序,它会要求最终用户输入 2 个数字,并允许他们从第一个数字中添加或减去第二个数字,并在文本框中显示输出。

现在,我添加了另一个子程序,它会在 Windows 窗体加载时自动执行。这将计算输出文本框的宽度和表单宽度并显示在底部。

这就是代码现在的样子:

Public Class Form1

    ' Run this Subroutine initially to display the Form and Text box width
    Private Sub Form_Load()
        Label5.Text = TextBox3.Width
        Label7.Text = Me.Width
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a As Integer
        Dim b As Integer
        a = TextBox1.Text
        b = TextBox2.Text
        TextBox3.Text = a + b
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim a As Integer
        Dim b As Integer
        a = TextBox1.Text
        b = TextBox2.Text
        TextBox3.Text = a - b
    End Sub
End Class

虽然加法和减法一切正常,但它不会在 Windows 窗体中显示窗体和输出文本框宽度。

我认为,Form_Load() 没有正确执行。

我也尝试过 Form_Activate() 但这也不起作用。

一旦我能够做到这一点,我想扩展这个概念来调整输出文本框的大小以及表单调整大小。但是,出于理解的目的,我想看看我是否可以成功执行 Form_Load() 。

谢谢。

4

2 回答 2

2

您需要添加 Handle 以便应用程序自动执行它:

Private Sub Form_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    '...
End Sub
于 2013-01-23T15:48:49.043 回答
2

Form_Load不执行。目前,它只是任何其他方法。为了告诉 VB 让这个方法处理Load事件,你需要这样告诉它:

Private Sub Form_Load(sender As Object, e As EventArgs) Handles MyBase.Loasd
    Label5.Text = TextBox3.Width
    Label7.Text = Me.Width
End Sub

(并添加事件所需的参数。)

其他几点说明:

  • 确保Option Strict On始终在您的项目选项中启用该选项。这将使编译器对您的代码更加严格并标记更多错误。这是一件好事,因为这些错误是潜在的错误。特别是,您的代码在不同数据类型之间的转换非常宽松,这些应该明确。

  • 声明变量时初始化变量,不要在单独的语句中赋值。也就是说,这样写:

    Dim a As Integer = Integer.Parse(TextBox1.Text)
    

    (也添加了显式转换。)

  • 如果你想让一个控件填充表单,你可以Dock在表单编辑器中适当地设置它的属性,而不必手动编程。

于 2013-01-23T15:46:45.020 回答