掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MDIアプリで、子ウィンドウAから子ウィンドウBのボタン表示を更新するには? (ID:115034)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> MDI内の子ウィンドウAのボタンを押したときに、子ウィンドウB > のボタンのEnable状態を変更したいのですが、 単純には、FormA側で、 Private Sub Command1_Click() FormB.Command1.Enabled = False End Sub のように書く事となるかと。 # 子フォームを「New FormB」等で生成していなければ、ですけど。 > 子ウィンドウBが開いているか(ロードしているか)は、 > わかりません。 ロードされていなかった場合は、どうされたいのでしょうか? それによって、コードの書き方も変わってくると思います。 (a) Loadして、ボタンのEnableを変更し、Bを表示する。 (b) Loadして、ボタンのEnableを変更するが、Bは表示しないまま。 (c) Loadせず、ボタンのEnableも変更しない(つまり、何もしない)。 (d) その他 > 但し、子ウィンドウBが開いているか(ロードしているか)は、 > わかりません。また、できれば子ウィンドウBが開いているかは > 管理したくありません。 Loadしているかどうかは、以下のようにして調査できます。 http://www.gj.il24.net/~nakasima/vb/tips/index.htm#VBTIPS4 > イメージ的には子ウィンドウAでボタンを押したときになんらかの > イベントを発信して、もし子ウィンドウBが開いていたらそのイベントを > 受けとって表示を更新する、みたいなことがやりたいです。 その場合、子ウィンドウBでイベントを受け取れる状態にするために、 FormBに「Private WithEvents Button As CommandButton」などの宣言を書き、 かつ、この Button という変数に、「Set Button = FormA.Command1」などとして、 ボタンへの参照を格納しておいてください。 そうすると、FormA.Command1がクリックされたときに、FormBの Sub Button_Click() プロシージャが呼び出される事になります。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.