• ベストアンサー

Formの制御について

Formの制御について .NET C#で開発をしております初心者です。 親Formからボタンを押して子Formを開き、その子Formを開いたままで、 また親Formから、違うボタンを押したら別の子Formを開きたいのですが、 最初の子Formを閉じなければ、親FormがActiveになりません。 どの様な記述をしたら宜しいのでしょうか。 ご教授頂きたく、宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんにちは。 それは「子フォーム」を「ShowDialog()」で表示させていませんか? 普通に「Show()」メソッドで表示させればいくつでも表示できます。

miruchoko
質問者

お礼

ありがとうございました。 出来ました。 また宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C#のFORMについて

    C#のFORMについて お世話になります。 .NET C#にて開発しております初心者です。 親Formからボタンを押すと子Form1を開き、 そして、親Formの同じボタンをまた押すと、子Form1が 開かれていれば、子Form1を閉じ、子Form2を開く。 次にまた親Formの同じボタンを押すと、子Form2が 開かれていれば、子Form2を閉じる。 上記内容のコードがうまく書けませんでした。 具体的にどの様に書いたら良いか、 ご教授頂けないでしょうか。 宜しくお願い致します。

  • 子Formからの得た値をtextBoxに表示

    お世話になります。 .NET C#で開発をしている初心者です。 親Form1のReadOnlyにしているtextBox1をダブルクリックしたら、子Form2が表れ、 その中で、ラジオボタンなどで各項目を選択する様になっており、選択した結果の 文字列が、子Form2のReadOnlyにしているtextBox1に表示され、これで良ければ、 決定ボタンであるButton1を押すと、子Form2が閉じられ、元の親Form1のReadOnly にしているtextBox1に子Form2で決定した文字列が表示される様にしたいのですが、 私がやってうまく行かないのは、子Form2で決定した文字列をClassでsetし、親Form1 に制御が移った時に、classからgetしようとしたのですが、 まず、子Form2が閉じられた時、親Form1はtextBox1にダブルクリックしたままの(後の) 状態、つまりカーソルが残ってる状態で、文字列が表示されない。 子Form2が閉じられた時すぐかもしくは、子Form2の決定ボタンであるButton1を押した 時すぐに親Form1のtextBox1に文字列が表示されていて欲しいのですが、その方法が 分からないので、とりあえず、親Form1のtextBox1のLeaveイベントを発生させて文字列 を表示しています。 どなたかご親切な方、ご教授下さいます様、宜しくお願い申し上げます。

  • あるFormから別のFormを発生させたい

    VB超初心者です。 VB2005で最初のForm1にButtonを配置し、そのボタンを押すと、別のウィンドウ(別のForm?)が現れて、 ちょっとしたデータを入力するとその画面が消えて、元の画面に戻るというプログラムを作りたいのですが、 どうしたらいいのでしょうか?

  • Accessで入力用全画面Formと検索用子Formを表示させたい。

    こんにちは。 Accessで入力用Formと検索用の小さなFormを表示させたいと思っています。 具体的な動作は下記です。 入力用Form(親)からコマンドボタンを押して、マスタ一覧の別のForm(子)が起動します。 子Form一覧からレコードを選択すると、子フォーム終了と同時に親フォームへ値を設定します。 動作自体は問題ありませんが、 やりたいのは親ホームは全画面として、子フォームをその上に大きさを指定した 小さなウィンドウとして表示させたいと考えています。 親フォームを全画面で、子フォームを起動すると子フォームでサイズ指定(DoCmd.MoveSize)しても 全画面として起動されます。 親フォームを元のサイズとして、子フォームを起動するとサイズ指定が有効になり 画面の大きさは一応指定されます。 しかし、運用のディスプレイサイズがまちまちなので、親画面は全画面(DoCmd.Maximize)として起動し、 その上に小さなフォーム画面を乗せたいです。 色々と試しましたが、上手く行きません。 もし良い方法をご存知の方ご教授頂きたく宜しくお願い致します。

  • Form_Load と Form_Activate のタイミング

    あるデータ入力アプリを作っています。 親フォーム(Form0)で番号を決め、子フォーム(Form1,Form2,Form3,Form4) でデータ入力し、それぞれの子フォームを出るとき(Unload Me) に、変数にsaveしています。それを親フォーム(Form0)で登録を選択したとき、入力データをチェックしてDBに格納しています。 すでにDB格納済のデータの場合、親フォームでDBから変数に読み込み、子フォームのForm_Loadで展開しています。 そこで困っているのは、親と子のフォームを行き来するときにデータの表示で前のが残っていたり、消えてしまったりします。 Form_LoadとForm_Activateを通過するタイミングが、ちゃんと理解できていないためコードの記述位置が不適切なのだと思います。 Form_Load と Form_Activate の実行タイミングについて、お教えください。

  • Form1にForm2を作る

    c++BuilderXE2です。 Vclフォームアプリケーションで作ったForm1に、更にForm2を作ることはできるのでしょうか。 プロジェクトマネージャーにFormコントロールが無いのでできないのでしょうか。 Form2を作る目的は、Form2とForm1はそれぞれ別プロセスで動作させ、かつForm2は子ウインドウのように動作させる、すなわち、Form1の位置を変えると、Form2も移動し、かつForm2はForm1より常に前面に置くためですが、このようなことができるかどうかを確かめたいのです。 他にもっとスマートな方法があればご教示願えれば幸いです。 まったく別のexeのウインドウ(Form2に対応)をForm1からspawn関数により立ち上げることは、テストしているのですが、両者の位置関係が連動しない問題があるのです。SetWindowRectは目的が違うようです。

  • form の target(

    form タグに オプションとして存在する target に関してです。 form method="POST" action="***.cgi" target="new" と記述すればsubmit実行時に結果を別ウィンドウに転送します ここまではいいのでが・・・・ submitボタンが複数ある場合(ボタンによって処理が違う) ボタンによって、このボタンは新しいウィンドウを開くが、 このボタンは開かない(同一ウィンドウ内に結果表示する) というように設定することはできますか? CGIとJavaSCRIPTの利用は可能です。 やはり別の form を立てるしかないのでしょうか? (cgiに渡す値が大量なため一つのformで実現したいとおもっています)

    • ベストアンサー
    • HTML
  • Form1で指定した命令をForm2で実行させたい。

    開発環境はVB6.0です。 Form1にA・B・Cの3つのボタンを用意します。 格ボタンを押した時各自が用意した画像ファイルをForm2に表示させます。 という事をしたいんですが、 Form1にAのボタンと画像を表示するなら Private Sub Form_Load() ChDir "c:\gazou\a" End Sub Private Sub Command1_Click() For i = 0 To 2 fn = Chr(48 + i) & ".jpg" Image1(i).Picture = LoadPicture(fn) Next i End Sub 表示されるのですが、『"C:\gazou\a"』の部分が"C:\gazou\b"や"C:\gazou\c"にしないといけないので困っています。 しかもFormが違うのでとても困ってます><

  • Formに貼り付けたActiveXコントロールへの

    Formに貼り付けたActiveXコントロールへのアクセスを別Classに担当させる方法 プログラミング初心者です。 現在VB.NETでRS-232Cで接続するデバイスを制御するフォームアプリケーションを作成しています。 デバイス制御にはメーカからActiveXコントロールが配布されており、それをフォームに貼り付けて基本的な動作をさせるところまではできています。 ただ、現在全てのコードがForm1クラスに記述されており、今後ボリュームが増えていくとメンテがしづらくなりそうですので、まとまった各機能群を別のクラスとして作成したいのですが、フォームに貼り付けたActiveXコントロールを別のクラスから動かすためにはどうすれば良いのかわかりませんので教えていただけないでしょうか。 以外検討してだめだったものです。 Class Class2 Dim frm As Form1 = New Form1 frm.AxSample1 End Class 上記のようにForm1のインスタンスを作成するのも何かが違う気がしますし…。 Class Class2 Dim frm As Form Public Sub New(ByVal senderfrm As Form) frm = senderfrm End Sub frm.AxSample1 End Class 上記だとAxSample1がClass2に認識されるはずもないですし…。 Importsとか色々試してみたのですがうまく行かず…という状況です。 そもそも根本的に別クラスにさせようということがおかしい、などの回答でも結構です。 よろしくお願いいたします。

  • クロスドメインによるswf読み込みと相互制御

    環境:as2.0 Flash8 winXPです。よろしくお願いします。 本サイトhttp://www.aaa.com下にある親swf【aaa.swf】から mcLoader.loadClip("http://www.bbb.com/bbb.swf", yomikomi_mc); で別ドメインhttp://www.bbb.com下にある子swf【bbb.swf】を読み込み 相互制御したいと考えています。 それぞれに 親swf System.security.allowDomain("bbb.com"); 子swf System.security.allowDomain("aaa.com"); と書いています。 読み込みと、親swfから子swfへの制御は出来るのですが yomikomi_mc.gotoAndStop(2);//などは問題なく動く 子swfから親swfへの制御ができません。 同じドメイン下にある時には制御できるのですが、クロスドメインから読み込むと、 制御できません。 制御できない部分を詳しく記述させて頂きますと、子swfは lockroot = true; としていますので親swfへのパス、 _root._parent._root=gotoAndStop(3); やグローバル変数(親swfで指定_global.hensuu=5;) trace(hensuu); などがundifinedとなってしまいます。 親swfファイルへの制御許可の記述が System.security.allowDomain("aaa.com"); ということではないのでしょうか?記述の仕方が問題でしょうか? 親swfへのパスが変わってしまうのかとも思い色々試してみたのですがうまくいきません。 ご教授頂ければ幸いです。よろしくお願いいたします。