投稿者 魔界の仮面弁士  (社会人) 投稿日時 2010/8/12 20:36:03
> 初期値の指定は無いのでなぜエラーするのかわからないのです。(泣;)
データが無いから、では?

先ほどの回答でも触れていますが、エラーが発生した時に、
e.Index にどのような値が渡されているかを調査してみましょう。
Try
    'エラーになるかも知れない行 
    Row = DirectCast(Me.Items(e.Index), DataRowView)
Catch ex As Exception
    'エラー発生時に内容を表示 
    MsgBox(String.Format("e.Index={0}, Me.Items.Count={1}:" _
        & vbCrLf & "{2}", e.Index, Me.Items.Count, ex.Message))
End Try



で、エラーメッセージを見る限りでは、
>> ‘0’のInvalidArgument=Valueは‘index’に対して有効ではありません。
と書かれているようなので、e.Index が 0 であるという事が分かりますよね。
リスト内にデータが一個も無い場合には、Me.Items(0) にアクセスする事はできません。

そして、もしもこれが原因なのであれば、Me.Items(e.Index)する前に、
e.Index や Me.Items.Count の件数をチェックするコードを書けば、
Me.Items に範囲外の値を渡さないようにできますよね。

> そちらのほうは何のエラーも発生していないのです。
コンボボックスの描画は、ドロップダウン時にしか発生しないからです。
データが未登録なら猶の事。

とはいえ ComboBoxEx の方にしても、DropDownStyle を DropDown にすれば、
入力部(テキストボックス)も描画対象になるので、今回の現象と同様の問題が
起きるはずです。これも上記同様、e.Index 等の値を If ~ Then で判定するなどして
Me.Items(異常値) が行われないように回避しましょう。