はじめまして。現在、VB2005で開発しております。
MDIの操作で判らないところがありますので、ご存知の方がいましたら、教えてください。
MDIで開発しております。親フォームで発生したイベント内で子フォームに対してコントロール操作(画面を操作する関数を実行)を行うのですが、画面は全く動作しません。
※デバックで確認するとコントロール操作しております。
対象の子フォームは必ず表示されていますが、必ずしも最前面にはいません。
今回のように親フォームから子フォームのメソッドを実行する際に動作する方法を教えてください。それとも、操作することは不可なのでしょうか。宜しくお願いします。
No.2ベストアンサー
- 回答日時:
>Call frmChild.子フォームの関数
VB6ではフォーム間のコントロール操作ができましたが、VB.NETではできません。Invokeメソッドを使用します。
参考URLでは、スレッドからフォームのコントロールを操作する解説ですが、フォームから他のフォームのコントロールを操作する場合も同じです。
参考URL:http://www.atmarkit.co.jp/fdotnet/dotnettips/312 …
この回答への補足
回答ありがとうございます。
参考URLを確認させていただきました。
私自身まだまだ未熟でInvokeメソッドを使用する方法が理解できませんでした。
もし、よろしければフォームから他フォームのコントロール操作する方法をサンプルなどで教えていただけないでしょうか?
宜しくお願いします。
nishito24さん、Wizard_Zeroさん
回答いただきありがとうございました。
nishito24から参考URLをじっくり読み、作成APLに導入した所動作を確認することができました。
ありがとうございました。
No.1
- 回答日時:
画面を操作する関数 とありますが具体的にどのような動作でしょうか?
可能であればその部分のコードを提示していただけると的確なアドバイスがもらえると思います。
推測ですが、子フォームのインスタンス関連かな、と思いました。
ChildFormというフォームがあり、フォームを表示する時は
Dim frmChild As New ChildForm
frmChild.Show()
としておいて、メソッドにアクセスする時は
ChildForm.Method()
みたいにしているのではないかな・・・と。
この回答への補足
今回作成しているプログラムは親フォームから起動時に
すべての子フォームを呼び出しております。(子フォームは複数あり)
Public frmChild As New ChildForm ← 別の所で定義(別画面からでも呼び出せるように)
frmChild.MdiParent = Me
frmChild.Show()
その後、親フォームでデータ受信イベントが発生した時にデータを
データベースに登録し、子フォームのDataGridViewに対して登録したデータを表示させたいと思っております。
※データベース処理は省略します。
親フォームから呼び出すときには
Call frmChild.子フォームの関数
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
子フォームの関数はDataGridViewに対して、
リストクリア
DataGridView.Rows.Clear()
データ追加
DataGridView.Rows.Add(・・・)
を行っております。
デバックするとこの関数は呼び出せておりますし、動作(値の取得や追加)は行えております。ただ、一覧には反映されません。
※この処理をコントロール操作(画面を操作する関数を実行)と記載しました。
※子フォーム上では同じ関数を呼び出し、正しく動作していることを確認しております。
今回の場合、どのようにしたら親フォームから子フォームを操作できるか教えてください。お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
モーダルフォームとモードレス...
-
Excelにて、ユーザーフォームで...
-
エクセルVBAのフォームを最...
-
クリックイベントなのに、2回ク...
-
VBAでユーザーフォームを再表示...
-
ACCESSのフォーム、開くんです...
-
Access VBA コントロールの参照...
-
フォームウィンドウを最前面に...
-
コントロールの存在確認
-
C#でボタンクリックをキャンセル
-
(Excel+VBA)ユーザーフォームの...
-
Excel VBAでユーザーフォームだ...
-
Form_Load と Form_Activate の...
-
VBA コンボボックスとテキスト...
-
タスクバーにフォーム名を表示...
-
【VBAユーザーフォームで閉じる...
-
accessフォーム トルグ yes/n...
-
複数モニタ使用時のフォームの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームのテキストボ...
-
エクセルVBAのフォームを最...
-
クリックイベントなのに、2回ク...
-
VBAでユーザーフォームを再表示...
-
Form_Load と Form_Activate の...
-
Microsoft Formsの「個人情報や...
-
ACCESSのフォーム、開くんです...
-
'ユーザーフォーム右上隅の[×...
-
フォームウィンドウを最前面に...
-
Hideについて(.NET)
-
モーダルフォームとモードレス...
-
ユーザーフォーム上に現在日時...
-
MSGBOXのフォント大きさ変更
-
Excelにて、ユーザーフォームで...
-
コントロールの存在確認
-
ユーザーフォームのラベルに時...
-
VBA(エクセル)のユーザー...
-
エクセルVBA フォーム上でOnkey...
おすすめ情報