
先日より取り組んでいる顧客検索プログラムですが、combobox1でササキを選ぶとcombobox2には北海道、combobox3には札幌市と表示させたいと思います。先日もアドバイスをいただきそれを参考にすすめていますが、「'0' の InvalidArgument=Value は 'SelectedIndex' に対して有効ではありません。 パラメータ名: SelectedIndex」というエラーが出てしまいどうしても解決出来ません。このエラーの後さらにデバッグすると思ったとおりに動作するのですが、エラーを解決するにはどう対処すると良いのでしょうか?下記が現在のソースとなります。どうかアドバイスをお願い致します。
ササキ,北海道,札幌市,
スズキ,東京都,あきる野市,
サトウ,愛知県,名古屋市,
ハヤシ,北海道,旭川市,
が TextFile1.txtです。
Imports System.IO
------------
Public Class Form1
Private Sub Form1_Load(省略~
Dim fn As String = "C:\TextFile1.txt"
Dim read As System.IO.StreamReader = My.Computer.FileSystem.OpenTextFileReader(fn, System.Text.Encoding.Default)
Dim dline() As String
Dim namelist As ArrayList = New ArrayList()
Dim adr1list As ArrayList = New ArrayList()
Dim adr2list As ArrayList = New ArrayList()
dline = Split(read.ReadToEnd, vbCrLf)
Dim srcary() As String
Dim i As Integer
For i = LBound(dline) To UBound(dline)
srcary = Split(dline(i), ",")
namelist.Add(srcary(0))
adr1list.Add(srcary(1))
adr2list.Add(srcary(2))
Next
ComboBox1.DataSource = namelist
ComboBox1.SelectedIndex = -1
ComboBox1.Text = "名前"
ComboBox2.DataSource = adr1list
ComboBox2.SelectedIndex = -1
ComboBox2.Text = "住所1"
ComboBox3.DataSource = adr2list
ComboBox3.SelectedIndex = -1
ComboBox3.Text = "住所2"
End Sub
-------------
Private Sub ComboBox1_SelectedIndexChanged(省略~
If ComboBox1.SelectedIndex > -1 Then
ComboBox2.SelectedIndex = ComboBox1.SelectedIndex
Else
ComboBox2.Text = ""
End If
End Sub
No.1ベストアンサー
- 回答日時:
デバッグの基本は何が原因でエラーとなるか、どこまでは正常に動いているか、を付きとめる事です。
1行ずつブレークポイントを設定してステップ実行していけば、理由が判るようになっていきます。下記行が
ComboBox1.DataSource = namelist
実行された後、
Private Sub ComboBox1_SelectedIndexChanged(省略~
この↑イベントが実行され、結果としてエラーになっています。
エラー行は↓ですね。
ComboBox2.SelectedIndex = ComboBox1.SelectedIndex
つまり、ComboBox2には何も選択肢が設定されていないのに、SelectedIndex = 0 を指定しようとした為に発生しているのです。
このことから、ComboBox1_SelectedIndexChanged イベントは、選択肢を追加しようとする際にも走る事が判りますね。
対処方法としては、フラグを用意して、ComboBox への選択肢初期設定中は、イベント内の処理を無視することです。たとえば次のような感じになります。
Public Class Form1
Dim bFormLoad As Boolean = True '■追加
Private Sub Form1_Load(省略~
(各処理)
bFormLoad = False '■Form1_Load 内の最後に追加
End Sub
Private Sub ComboBox1_SelectedIndexChanged(省略~
If bFormLoad Then Return '■追加
If ComboBox1.SelectedIndex > -1 Then
ComboBox2.SelectedIndex = ComboBox1.SelectedIndex
Else
ComboBox2.Text = ""
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Loadイベント中にほかのイベントを発生したくない
その他(プログラミング・Web制作)
-
変数名の付け方
Java
-
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
-
4
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
5
DataTableに特定のフィールドが存在するかどうか調べるには?
Visual Basic(VBA)
-
6
Datatableへの代入
その他(プログラミング・Web制作)
-
7
Hideについて(.NET)
Visual Basic(VBA)
-
8
VBの画面サイズについて
Visual Basic(VBA)
-
9
.NETアプリを作ったときの .manifest ファイルって必要なの
C言語・C++・C#
-
10
CloseとDisposeの違い
Visual Basic(VBA)
-
11
VB6からVB2010への変換について
Visual Basic(VBA)
-
12
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
13
C# シリアル通信でデータ受信時の欠損について
C言語・C++・C#
-
14
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
15
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
16
【VB.NET】日付型の列にNULLを登録する方法について
SQL Server
-
17
C# DataGridView のヘッダーセル中央揃え
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
お助けください!VBAのファイル...
-
エクセルVBAで埋め込みグラフ(C...
-
【VBA】ワークブックを開く時に...
-
LaTeXのエラーについて(コンパ...
-
HTMLソースが表示のページのも...
-
mailstorehomeのエクスポートで...
-
VBAでfunctionを利用しようとし...
-
ApplicationとWorksheetFunctio...
-
オートシェイプの削除時のエラ...
-
Excel vbaについての質問
-
COMExceptionはハンドルされま...
-
CreateFontが文法エラーに
-
unityの教科書のゲームを作って...
-
フランスの生年月日(jj/mm/aaaa)
-
データベース操作時エラーについて
-
ISAMドライバー
-
VC++で作成したソフトを実行す...
-
ADO 「認証に失敗しました」
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
String""から型'Double'への変...
-
【Access】Excelインポート時に...
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
インポート時のエラー「データ...
-
ACCESSで値を代入できないとは?
-
VBA エクセル で FIND でのエラ...
-
Filter関数を用いた結果、何も...
-
レコード登録時に「演算子があ...
-
ApplicationとWorksheetFunctio...
-
Excel vbaについての質問
-
【VBAエラー】Nextに対するFor...
-
実行時エラー 438 の解決策をお...
-
「実行時エラー '3167' レコー...
おすすめ情報