C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 78 を表示中)
■46030 / )  Re[3]: リストボックの検索について
□投稿者/ もりお (170回)-(2010/01/23(Sat) 18:44:19)
2010/01/23(Sat) 19:58:39 編集(投稿者)
No46027 (Surarin さん) に返信

> If TextBox1.Text = (13) Then
TextBox1.Text は String 型
13 は Integer 型
異なる型の比較を行うため暗黙的な型変換が行われます。
数字以外の文字列が入力された場合は型変換に失敗するために例外が発生します。

対策としては

例外の種類は System.InvalidCastException だとわかったので、これを捕まえる。
Try
	If TextBox1.Text = 13 Then
		ListBox1.SelectedIndex = 0
	End If
Catch ex As InvalidCastException
	MessageBox.Show("変換できないですよー")
	Return
End Try

試験的な型変換を行って例外を捕まえる。
Try
	Integer.Parse(TextBox1.Text)
Catch ex As System.FormatException
	MessageBox.Show("変換できないですよー")
	Return
End Try

If TextBox1.Text = 13 Then
	ListBox1.SelectedIndex = 0
End If

型変換を行う前に予測する。
If TextBox1.Text = "" Then
	MessageBox.Show("変換できないですよー")
	Return
End If

If Regex.IsMatch(TextBox1.Text, "[^0-9]") Then
	MessageBox.Show("変換できないですよー")
	Return
End If

If TextBox1.Text = 13 Then
	ListBox1.SelectedIndex = 0
End If

返信 編集キー/


管理者用

- Child Tree -