2010-06-14 115 views
0

我遇到了这个代码的问题,我找不到原因。它工作正常,第一次通过,但与崩溃“参数无效”在这条线通过错误的第二次:无法创建第二个文本框

Dim tbx As TextBox = New Windows.Forms.TextBox 

完整的代码如下:

Dim tbx As TextBox = New Windows.Forms.TextBox 
tbx.Name = tbxName 
tbx.Size = New System.Drawing.Size(55, 12) 
tbx.BorderStyle = BorderStyle.None 
tbx.TextAlign = HorizontalAlignment.Center 
Using f As Font = tbx.Font 
    tbx.Font = New Font(f.FontFamily, 8, FontStyle.Bold) 
End Using 
tbx.Location = New System.Drawing.Point(xCords, 44) 
Select Case tbx.Name 
    Case "tbxBulk01" : tbx.Text = Bulk01Label 
    Case "tbxBulk02" : tbx.Text = Bulk02Label 
End Select 
Me.Controls.Add(tbx) 

这里的堆栈跟踪:

at System.Drawing.Font.GetHeight(Graphics graphics) at System.Drawing.Font.GetHeight() at System.Drawing.Font.get_Height() at System.Windows.Forms.Control.get_FontHeight() at System.Windows.Forms.TextBoxBase.get_PreferredHeight() at System.Windows.Forms.TextBoxBase.get_DefaultSize() at System.Windows.Forms.Control..ctor(Boolean autoInstallSyncContext) at System.Windows.Forms.TextBoxBase..ctor() at System.Windows.Forms.TextBox..ctor()

任何帮助表示赞赏。

+0

该问题似乎出现在您发布的代码段周围的代码中。你什么时候第二次来电? – 2010-06-14 22:53:39

+0

在我的主form_load上,我有一个名为WriteControl的方法。对于每个我需要的文本框,我都会调用这个方法并传入控件和xcoords的名称。 刚刚删除了我的大部分代码,并用此代替。 WriteControls(“picBulk01”,“tbxBulk01”,7) WriteControls(“picBulk02”,“tbxBulk02”,68) 通过 – okinaw55 2010-06-14 23:03:58

+0

这也许值得一提的是,我创建了一个图片框与这仍然得到同样的错误的第二次方法,但没有包括清晰的代码。该部分似乎工作正常,将创建2个图片框。 – okinaw55 2010-06-14 23:16:58

回答

0

我知道这是一个老问题,但这里是我的答案。

我怀疑

使用.... END使用段为好。

我刚刚在反馈中也看过,哦,没关系。

Public Class Form1 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

     Dim xCoords As Integer = 80 
     Dim myTextBox As TextBox = New TextBox 

     For index As Integer = 1 To 2 
      myTextBox = New TextBox 
      myTextBox.Name = "MyTextBox" & index.ToString 
      myTextBox.Size = New System.Drawing.Size(55, 12) 
      myTextBox.BorderStyle = BorderStyle.None 
      myTextBox.TextAlign = HorizontalAlignment.Center 
      myTextBox.Font = New System.Drawing.Font(myTextBox.Font.FontFamily, 8, FontStyle.Bold) 
      myTextBox.Location = New System.Drawing.Point(index * xCoords, 44) 
      Select Case index 
       Case 1 : myTextBox.Text = "Bulk01Label" 
       Case 2 : myTextBox.Text = "Bulk02Label" 
      End Select 
      Me.Controls.Add(myTextBox) 
     Next 

    End Sub 
End Class 
相关问题