「コントロール配列の要素 'n' がありません。(Error 340)」に悩まされています。
デザイン時、Form上にSSPanelをコントロール配列で20個貼り付けています(オブジェクト名がsspBtnだとします)。
SSPanelのMouseDownイベントで、クリックされたSSPanelのBackColorを変え、それ以外をグレーにするというような処理があるのですが、ごくまれに、上記のError340が発生します。
たまたまデバッグ実行中に発生した時、ウオッチ式でみてみたところ、Item1〜19までしかありませんでした。
その時は上記エラーメッセージで「要素'2'」が無いとの事だったので、Item1から順にindexプロパティを見てみたところ、Item3のindexプロパティが、2であるはずが3になっていて、indexの2は存在しませんでした。
ですが、デザイン時に20個貼り付けていますし、そもそも、MouseDownイベントのIndexパラメータの値は2が入っています。
このような事が起きる原因は、どういった事が考えられますでしょうか?
>このような事が起きる原因は、どういった事が考えられますでしょうか?
貼り付けた後に、Indexの2に当たるオブジェクトを削除した。
>このような事が起きる原因は、どういった事が考えられますでしょうか?
[VB] 32 ビット版から Visual Basic 6.0 への移植時の注意事項
http://support.microsoft.com/kb/412580/ja
の
>Visual Basic 4.0 に含まれていた ActiveX コントロール
の項にある
>これらのコントロールは Visual Basic 4.0 での使用を前提としているため、
>Visual Basic 6.0 で使用された場合には、正常に動作しない可能性があります。
>Visual Basic 6.0 によって提供されるコントロールを使用するようにしてください。
を理解していない。
...まあ、これだけではアレですので、
一定の確率でエラーがあることを前提に
無理やりでも使いこなすという方針もアリかと思いますよ。
例)
エラートラップを適切に設定して、
340が出たら無視する
ツイート | ![]() |