- - PR -
VBで(SDI)子フォームから子フォームが開かない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-07-05 23:25
開発しているのは、VBでWin.アプリを開発しています。
VBで(SDI)子フォームから子フォームが開きません。 厳密には最初に作ったフォーム(Form1)を親フォームに指定はしていません。 Form1からForm2,3は開くのですが、Form3からForm2とForm2からForm3が開きません。 分かる方いらしたら、ご指導願います。 | ||||
|
投稿日時: 2007-07-05 23:32
各々のインスタンスは特に何もしなければ独立しておりますから問題なく動作するハズです。現状はこの程度の回答しかできませんから、実装を書いて頂いた方が早道になるでしょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2007-07-05 23:56
返信ありがとうございます。
私はAccess2000を用いてデータベースアプリケーションを作製しています。 Form1のボタンから Dim fm2 As New Form2 fm2.ShowDialog() Dim fm3 As New Form3 fm3.ShowDialog() とすると、問題なくForm2,3は開くのですが、 Form3のボタンから Dim fm2 as New Form2 fm2.ShowDialog() とすると、 「指定されたキャストは有効ではありません」 とエラーメッセージがでてしまいます。 ちなみにForm3のLoadプロシージャで Dim fm2 as New Form2 fm2.ShowDialog() とすると、問題なくForm2が開きます。 また、 Form2, Form3にはForm1のDataAdapterを参照するため、 fm1 = Form1.ActiveForm を記述しています。 以下Form3のサンプルです。 ================= 'モジュールレベル変数 Private fm1 As Form1 Private Sub Form3_Loadプロシージャ内 fm1 = Form1.ActiveForm End Sub Private Sub Btnプロシージャ内 Dim fm2 as New Form2 fm2.ShowDialog() End Sub ================= Form2, Form3 内から fm1 = Form1.ActiveForm を消し、Form3から fm2.ShowDialog() を実行したところ、 指定されたキャストは有効ではありません』 のメッセージが消えました。 ところが、fm1 = Form1.ActiveForm を消すと、 Form2,Form3からForm1のDataAdapterが参照できないため、 Form1で作製したDataAdapterを Form2,Form3で再作製しなければいけなくなってしまいます。 DataAdapterが多いだけにとても手間がかかってしまいます。 何かいい方法があれば、ぜひご指導ください。 本やインターネットでも調べたのですが、なかなか載っていません。 宜しくお願いします。 [ メッセージ編集済み 編集者: 未記入 編集日時 2007-07-06 19:09 ] [ メッセージ編集済み 編集者: 未記入 編集日時 2007-07-06 19:13 ] |
1