更新 : 2007 年 11 月
Visual Basic 2008 では、Visual Basic 6.0 の TextBox コントロールの代わりに、Windows フォームの TextBox コントロールが用意されています。プロパティ、メソッド、イベント、および定数の中には、名称が異なるものや、動作の異なるものもあります。
Visual Basic 6.0 では、MaxLength プロパティによって、TextBox コントロールに入力できる文字数が決定されます。テキストをプログラムで挿入しようとすると、そのテキストは MaxLength プロパティで指定された長さに切り詰められます。
Visual Basic 2008 では、MaxLength プロパティの動作は、プログラムで追加されるテキストには適用されません。Visual Basic 6.0 と同様の動作を実現するには、自分自身で文字列を切り詰める必要があります。
Visual Basic 6.0 では、PasswordChar プロパティは String 型です。Visual Basic 2008 では、Char 型です。
また、データ バインディング、フォント処理、ドラッグ アンド ドロップ操作、ヘルプ サポートなど、すべてのコントロールに当てはまる概念上の相違が数多くあります。詳細については、「Windows フォームの概念 (Visual Basic 6.0 ユーザー向け)」を参照してください。
TextBox コントロールに関するコードの変更点
次のコード例は、Visual Basic 6.0 と Visual Basic 2008 のコーディング テクニックの違いを示します。
TextBox コントロール内を検索するコードの変更点
次のコードは、TextBox コントロール内の文字列を検索し、それを強調表示する方法を示しています。
' Visual Basic 6.0
Private Sub Form_Load ()
Text1.Text = "Two of the peak human experiences"
Text1.Text = Text1.Text & " are good food and classical music."
End Sub
Private Sub Form_Click ()
Dim Search, Where
' Get search string from user.
Search = InputBox("Enter text to be found:")
' Find string in text.
Where = InStr(Text1.Text, Search)
If Where Then
Text1.SetFocus
Text1.SelStart = Where - 1
Text1.SelLength = Len(Search)
Else
MsgBox "String not found."
End If
End Sub
' Visual Basic
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
TextBox1.Text = "Two of the peak human experiences are "
TextBox1.Text = TextBox1.Text & "good food and classical music."
End Sub
Private Sub Form1_Click(ByVal sender As Object, ByVal e As _
System.EventArgs) Handles Me.Click
Dim Search As String
Dim Where As String
' Get search string from user.
Search = InputBox("Enter text to be found:")
' Find string in text.
Where = InStr(TextBox1.Text, Search)
If Where Then
TextBox1.Focus()
TextBox1.SelectionStart = Where - 1
TextBox1.SelectionLength = Len(Search)
Else
MsgBox("String not found.")
End If
End Sub
TextBox コントロールの文字数を制限するコードの変更点
次のコードは、MaxLength プロパティを使用して最大文字数を指定する方法を示しています。
' Visual Basic 6.0
Private Sub Form_Load()
Text1.MaxLength = 5
End Sub
Private Sub SetText()
' Only the first five characters will be displayed.
Text1.Text = "Hello World"
End Sub
' Visual Basic
Private Sub Form1_Load2(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
TextBox1.MaxLength = 5
End Sub
Private Sub SetText()
' Truncate the string to equal MaxLength.
TextBox1.Text = Strings.Left("Hello World", TextBox1.MaxLength)
End Sub
TextBox コントロールのプロパティ、メソッド、およびイベントの対応
次の表は、Visual Basic 6.0 のプロパティ、メソッド、およびイベントと、対応する Visual Basic 2008 のプロパティ、メソッド、およびイベントの一覧です。同じ名前で同じ動作を持つプロパティ、メソッド、およびイベントは、一覧に含まれていません。特に明記されていない限り、すべての Visual Basic 2008 列挙型は System.Windows.Forms 名前空間に対応します。
この表では、動作の相違点について説明するトピックへのリンクを示します。Visual Basic 2008 に直接対応するものがない場合は、代わりの項目について説明したトピックへのリンクを示します。
プロパティ
メソッド
イベント
Visual Basic 6.0 アプリケーションを Visual Basic 2008 にアップグレードすると、TextBox コントロールは Windows フォームの TextBox コントロールにアップグレードされ、プロパティ、メソッド、およびイベントは、それぞれに相当するものにアップグレードされます。動作が異なる場合は、アップグレードに関するコメントがコードに挿入されます。
参照