VB6.0のプログラムをVB2005で動かす時に変えなくてはいけないものは?


もこ  2010-11-11 22:17:06  No: 147206

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ではどのようにプログラムを打ったらいいでしょうか?
よろしくお願いします。


んがとと  2010-11-12 18:48:04  No: 147207

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 メソッドで
使っていた画面を破棄してしまうのが間違いが少ないです。

そこにモーダルダイアログ表示や、画面のロード回数を減らす
目的などがあって、単純に破棄できないとなると、インスタンス
の管理について勉強して頂くしかありません。


んがとと  2010-11-12 19:31:18  No: 147208

http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+201011/10110014.txt
↑このコードを使う場合、
New するたびに新しい i がロードされます。

VB6.0のコードを変換すると、ツールの限界で
VB6.0のコードをライブラリ化して使用したり、
無理やりなコードを作ったりするので良くないです。
(そもそも多種多様なプログラムコードをツールで変換
しようという時点であてにできないでしょう?)
参考にする程度で、VB.NET の書き方を勉強した方が
いいですよ?


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




  


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