VB6.0で作成したプログラムを、VB2005で動かしたら、うまく動きません。
同じページにボタン1、ボタン2、ボタン3、ボタン4、ボタン5、ボタン6、フレームを配置しています。
「ボタン1を押すと、フレーム内のテキストボックスに文字1が表示され、同時にボタン4が現れ、ボタン4を押すとページBに行き、ページBのボタン1を押すと、ページAに戻り」、そこにはボタン2を表示させ押すと文字2表示→クリックと同時に表示されたボタン5を押す→ページB...というプログラムを作ったのですが、VB2005ではボタン1の「」内の動作が何度も繰り返されるだけです。
VB6.0では
●●.visible=false
や
●●.visible=true
で動いていたのですが
VB2005では通用しないのでしょうか?
VB2005ではどのようにプログラムを打ったらいいでしょうか?
よろしくお願いします。
Visible プロパティ自体はVB2005でも有効です。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.visible(VS.80).aspx
ページAのインスタンスは複数作れます。ページBでも同様。
ページAを複数ロードしているのでは?
命令が実行されないのであれば、
2番目にロードしたページAを非表示にする目的で、
1番目にロードし、非表示にしたページAに命令を
出していた。。。というのが初心者がよくやる
パターンです。
その場合、VB6.0のプログラムも、実は良くないコードだった
という場合が多いですが。(基本的な考え方は共通していますから)
Visible プロパティで非表示にせずに、Close メソッドで
使っていた画面を破棄してしまうのが間違いが少ないです。
そこにモーダルダイアログ表示や、画面のロード回数を減らす
目的などがあって、単純に破棄できないとなると、インスタンス
の管理について勉強して頂くしかありません。
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+201011/10110014.txt
↑このコードを使う場合、
New するたびに新しい i がロードされます。
VB6.0のコードを変換すると、ツールの限界で
VB6.0のコードをライブラリ化して使用したり、
無理やりなコードを作ったりするので良くないです。
(そもそも多種多様なプログラムコードをツールで変換
しようという時点であてにできないでしょう?)
参考にする程度で、VB.NET の書き方を勉強した方が
いいですよ?