Error 340について


みつお  2008-07-25 04:34:58  No: 140135

「コントロール配列の要素 '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が入っています。
このような事が起きる原因は、どういった事が考えられますでしょうか?


1案  2008-07-25 18:08:11  No: 140136

>このような事が起きる原因は、どういった事が考えられますでしょうか?

貼り付けた後に、Indexの2に当たるオブジェクトを削除した。


もげ  2008-07-25 19:07:26  No: 140137

>このような事が起きる原因は、どういった事が考えられますでしょうか?

[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が出たら無視する


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加