• 締切済み

MDIの親フォームから子フォームの操作

VB2010のMDIの親フォームからの操作に関してです。 MDIで設定された親フォームのMenuStripから子フォームのTextBox1のTextの値をMsgBoxで取得したいのです 出来る事なのかどうか分からないですが、初歩的な質問でご迷惑をお掛けします・・・

みんなの回答

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.3

子フォーム1個ならデフォルトインスタンスが共通して使われるので #1さんのコードで取得できますね。 こちらでも動作確認できました。 ま、複数となってくると、どこかでインスタンスの管理をしてやらないと いけませんが。

  • hogya
  • ベストアンサー率67% (49/73)
回答No.2

最初の回答に記載した内容は実際にVB2010で動作するコードです。(試してみましたか?) なので、お尋ねの質問が、「VB2010で出来る事なのかどうか」ではなくて、「自分が出来るかどうか」ということであれば、実際に質問者さんが書いたコードを提示しないと「なぜ出来ないのか」の質問には答えることができないと思います。

  • hogya
  • ベストアンサー率67% (49/73)
回答No.1

こういう意味でよければできます。 例えば、以下は親フォームのMenuStripのMenuItemのクリック時にMsgBoxを表示する例です。 (Form2が子フォームです) Private Sub Menu1ToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles Menu1ToolStripMenuItem.Click MessageBox.Show(Form2.TextBox1.Text) End Sub

KenKen1978
質問者

補足

申し訳ないです・・・・・ 上記の方法では取得出来なかったです・・・・・

関連するQ&A

  • MDI親フォームで子フォーム開放を知る

    はじめまして。VB.NET2005でプログラミングをしている初心者です。 MDIフォームのAPを作成しています。 MDI親フォーム1つと子フォームが2つあるとします。 親フォームから子フォーム2つをShowします。 子フォーム1を閉じたときに、親フォーム内で子フォーム1が閉じられた事を知るすべは無いのでしょうか。 親フォーム内で起こるイベントでどの子フォームが閉じられたかを得たいと思っています。 どなたか分かる方いらっしゃいましたらご教授ください。 宜しくお願い致します。

  • MDI親フォームでのキー入力監視

    はじめまして。 VB6.0 SP5で開発を行っております。 子フォームが開いていない状態のMDI親フォームで、F1~F12のファンクションキーを押下したら、それぞれ対応した子フォームが開くようにしたいのですが、MDI親フォームでは、KeyUpやKeyDownのイベントが発生しないため、キー入力監視ができません。 上記のような事を実現させるためには、どのようにすればよろしいのでしょうか。 MDI親フォームには、PictureBoxを貼りその中にボタンを設置して、マウスクリックでも子フォームを開くようにしています。PictureBoxでKeyイベントを取得しようとしましたが、ボタンをクリックして、子フォームを開き、その子フォームを閉じた後(子フォームのUnLoadイベント内で親フォームのPictureBoxにSetFocusしています)、フォーカスがどこかへ行ってしまい、イベントがとれません。 常に、子フォームを開いている状態で、子フォームでKeyイベントを取得するしかないのでしょうか。その場合、子フォームを閉じた時に、別のフォーム(Keyイベント取得用フォーム)を自動的に開く方法はありますでしょうか。 長文となり申し訳ありません。 ご教授の程、よろしくお願い致します。 開発環境  OS:WindowsXP SP3  言語:VisualBasic6.0 SP5

  • VB2005のMDIについて

    はじめまして。現在、VB2005で開発しております。 MDIの操作で判らないところがありますので、ご存知の方がいましたら、教えてください。 MDIで開発しております。親フォームで発生したイベント内で子フォームに対してコントロール操作(画面を操作する関数を実行)を行うのですが、画面は全く動作しません。 ※デバックで確認するとコントロール操作しております。 対象の子フォームは必ず表示されていますが、必ずしも最前面にはいません。 今回のように親フォームから子フォームのメソッドを実行する際に動作する方法を教えてください。それとも、操作することは不可なのでしょうか。宜しくお願いします。

  • 子フォームから親フォームへのデータの受け渡し

    いつもお世話になっております。 VB.NETの質問です。 親フォームから子フォームを開き、子フォームで検索した結果を親フォームに返したいです。 はじめはテキストボックスへ表示させており、何の問題もなく出来ていたのですが、 仕様を変更してコンボボックスやラベルのテキストに表示させるようにしたら、子フォームからデータを取れなくなりました。というか表示されなくなりました。子フォームのme.close()する直前の変数の値にはデータが入っているのですが・・・ なんでなんでしょうか? 開発一筋でやられてきた方には、本当に初歩的な質問だと思いますが、 よろしくお願い致します。

  • MDI:親フォームと子フォームを別EXEで実装するには

    MDIでアプリケーションを作成したいと思っています。 その時に子フォームを親フォームとは別EXEで作りたいと思っています。 例えば 親フォームのボタンを押すと、子フォームEXEが起動し、親フォーム内に表示される。 このようなことは出来ますか? 出来るのでしたら、どうしたらよろしいでしょうか。 教えてください。

  • 子フォームから親フォーム上のコントロールを操作したい

    VC++.NET(C++/CLI)にてアプリケーションを開発しております。 親フォーム(FormParent)と子フォーム(FormChild)があり 子フォームから親フォーム上にあるtextBox1を操作したいのですがうまくいきません。 親フォームからはFormChild.hをインクルードすることで 親フォームのインスタンスを得て、子フォームを表示させているのですが これに加えて子フォームからFormParent.hをインクルードすると循環参照(と言うのですか?) となる為にエラーになってしまいます。 よろしくお願いします。

  • VB.NET MDI親フォームのスクロールバー制御

    開発環境:Windows XP、VB.NET 2005 MDI親フォームに複数のMDI子フォームを貼り付けるプログラムを作っています。 MDI子フォームを重ならないように配置させているのですが、MDI親フォームの表示領域を超えた場合に自動的にスクロールバーが現れます。 この時に、マウスのホイールの上下の動きにあわて、MDI親フォームのスクロールバーを制御して画面を上下させたいのですが方法が分かりません。 どなたかご享受ください。

  • MDI アプリケーションで

     VBの、アプリケーションウィザードでMDIテキストエディタが作れますよね。  それをいじってMDIの勉強してるんですが、今はそこで終了時に編集していながらまだ保存していないフォームを探して、コモンダイアログを表示させて保存させようとしています。  しかし、どうすればいいのか分かりません。  はじめは、フォームのキャプションかどこかに編集した印でも付けて、Formsを使ってそれを判断させようとも思ったのですが、開発途中で子フォームがもう一つ出来てしまい、それとごちゃごちゃになってしまう可能性が出てきました。  何とか、テキスト編集用の子フォームのみを判断させたいのですが、上手く出来ないものでしょうか。  特定の子フォームの数や番号を特定できるコマンドとかってVBにあるんですかね。あれば出来そうなんですが……何か良い方法があればお教えください。 ------------------- 開発環境 VB6.0(SP5) WIN2000

  • VB2010でMDI親フォームから子フォームを表示

    VB2010でソフトを作っております。 MDI親フォームから子フォームを表示させたいのですが…。 過去に少しだけVB6を使っていたことがありますが、クラスという概念に苦労しております インスタンスや初期化といったところをうまく扱えばとは思うのですが、よろしくご指導お願いいたします。 1.MDI親フォーム(Form1)のボタンを押し、子フォーム(Form2)を表示させる 2.子フォームが表示されていなかったら表示させる 3.子フォームが表示されていたら何もしない これだけの事ですがずいぶん悩んでおります。 全コードがこれです。 Public Class Form1 Private f2 As New Form2 Private Sub Form1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.IsMdiContainer = True End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim fChild As Form() = Me.MdiChildren For Each f As Form In fChild If f.Text = "Form2" Then Exit Sub End If Next f2 = New Form2 f2.MdiParent = Me f2.Show() f2.Activate() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If f2 Is Nothing OrElse f2.IsDisposed Then f2 = New Form2 f2.MdiParent = Me End If f2.Show() f2.Activate() End Sub End Class ボタン1でもボタン2でも、期待する動作はするのですが、 ボタン1ではアクティブになっているフォームの名前を力技で取得している気がして… ボタン2では子フォーム(Form2)をすでに表示している状態でもさらにShowをしているのが気に入らなくて… もっとスマートな方法がありましたら、ご指導お願いします。

  • VisualBasic.NET MDIアプリの子フォーム間のやりとり

    最近VisualBasic.net(2003)を始めた初心者です。 MDIを使ったアプリケーションを作りたいと考えているのですが なかなか進まなくて困っています。 frmA(親フォーム) frmB・formC(子フォーム)を作成して 表示させた後 frmBの中のラベルのテキストや表示を frmCのボタンによって変更したいのですが なかなかうまくいきません。 親フォームからではできるみたいなのですが 子フォームどうしでは できないのでしょうか? ぜひ アドバイスをよろしくお願いいたします。 (説明不足なところは申し訳ございません。)

専門家に質問してみよう