• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2008 comboboxを連動させた際のエラー)

VB2008 comboboxを連動させた際のエラー

このQ&Aのポイント
  • VB2008の顧客検索プログラムでcomboboxを連動させた際に、'0' の InvalidArgument=Value は 'SelectedIndex' に対して有効ではありません。 パラメータ名: SelectedIndexというエラーが出てしまい解決方法を求めています。
  • 現在のソースコードを使ってcombobox1で選択した値に応じてcombobox2とcombobox3に表示したい値を設定していますが、エラーが発生してしまいます。どのように解決すればよいでしょうか?
  • VB2008の顧客検索プログラムでcomboboxを連動させようとしていますが、'0' の InvalidArgument=Value は 'SelectedIndex' に対して有効ではありません。 パラメータ名: SelectedIndexというエラーが出てしまいます。解決方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#259269
noname#259269
回答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

lobin_2008
質問者

お礼

早速のご回答ありがとうございます。 上記内容にて対処することが出来ました。 どうもありがとうございます。

関連するQ&A