- PR -

子フォームのリロード(C# Winフォーム)

投稿者投稿内容
キラ
大ベテラン
会議室デビュー日: 2005/12/10
投稿数: 104
投稿日時: 2006-02-27 11:59
いつもお世話になっております。

MDIフォームを作成しています。
子フォームのボタンをクリックした時に子フォーム自身を再描画したいのですがうまくいきません。
どのようにしたらうまくいくでしょうか?
ご教授ください。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-27 12:02
引用:

トトロさんの書き込み (2006-02-27 11:59) より:

子フォームのボタンをクリックした時に子フォーム自身を再描画したいのですがうまくいきません。
どのようにしたらうまくいくでしょうか?


どのようにしたらうまくいかなかったのでしょうか?
子フォームのインスタンスから Refresh メソッドで可能だと思うのですが。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
キラ
大ベテラン
会議室デビュー日: 2005/12/10
投稿数: 104
投稿日時: 2006-02-27 12:41
お世話になります。
引用:

どのようにしたらうまくいかなかったのでしょうか?
子フォームのインスタンスから Refresh メソッドで可能だと思うのですが。


一度画面を閉じてからもう一度開こうと思っていました。
子画面からだと親画面をうまく指定できませんでした。

子フォームのインスタンスは親フォームにあるんですよね。
子フォームからどのようにアクセスすれば良いでしょうか?
初歩的な質問ですみません。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-27 12:42
引用:

トトロさんの書き込み (2006-02-27 12:41) より:

一度画面を閉じてからもう一度開こうと思っていました。


インスタンスを使いまわすような場合は閉じるのではなく、隠すのが自然だと思います。
これならば、親 MDI フォームから参照できます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
キラ
大ベテラン
会議室デビュー日: 2005/12/10
投稿数: 104
投稿日時: 2006-02-27 12:58
お世話になります。

理解できませんでした。
親フォームにpublicで子フォームのインスタンスを作って、子フォームから親フォームのインスタンスを作ってアクセスすると言うことですか?
これはうまくいかなかったです。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-27 13:15
引用:

トトロさんの書き込み (2006-02-27 12:58) より:

親フォームにpublicで子フォームのインスタンスを作って、子フォームから親フォームのインスタンスを作ってアクセスすると言うことですか?
これはうまくいかなかったです。


MDI 子 フォームから MDI 親フォームを作る必要はないでしょう。
というよりできませんし、構造化言語的に見てもおかしいことです。
親がインスタンスの管理をする (している) のです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
キラ
大ベテラン
会議室デビュー日: 2005/12/10
投稿数: 104
投稿日時: 2006-02-27 14:13
お世話になります。
引用:

子フォームのインスタンスから Refresh メソッドで可能だと思うのですが。


たびたび申し訳ありません。
子フォームのボタンをクリックした時にどのようにしたら良いのでしょうか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-27 14:38
引用:

トトロさんの書き込み (2006-02-27 14:13) より:

たびたび申し訳ありません。
子フォームのボタンをクリックした時にどのようにしたら良いのでしょうか。


またすれ違いになるのもアレなので、確認させてください。

最初の質問は "子フォーム自身" ということでした。
それも「再描画」という表現でした。

途中から再描画ではなく、再表示ということがわかりました。
ところが、非表示の子フォーム "自身" の Button から Click して表示する、というのはありえないですよね。
非表示なのですから、その Button を押下することができません。

つまり、当初の質問から、
 「MDI 親フォームから、非表示になった MDI 子フォームを再表示したい」
に変わったものだとします。

それを前提に以下の回答をしています。

MDI 親フォームからであるならば、MDIChildren プロパティなり、
表示前に確保しておいたインスタンス変数から Visible プロパティあるいは、
Show メソッドを呼び出すことで再表示できると思います。

私に意図が伝わっていないのであれば、具体的に書く必要があると思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)