- PR -

C# MDI子ウインドウ上のコントロールへのアクセス方法

1
投稿者投稿内容
そんぴん
会議室デビュー日: 2006/08/16
投稿数: 16
投稿日時: 2006-08-16 18:44
お世話様です。当方、C#を始めたばかりです。よろしくお願いします。

MDI子ウインドウに貼り付けたricheditにアクセスする方法について教えてください

具体的には

メインフォーム MDIMainForm
子フォーム MDIChildForm

とあって、子フォームにricheditを貼り付けてあるとします。
いくつか子フォームを作った後、アクティブな子フォームのricheditのプロパティを呼び出したい。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-16 18:54
引用:

そんぴんさんの書き込み (2006-08-16 18:44) より:

いくつか子フォームを作った後、アクティブな子フォームのricheditのプロパティを呼び出したい。


MDI 親フォームから ActiveMdiChild プロパティ を取得します。

MDI 子フォームの型が同一であれば、型を検証したのちその Form の型にキャストします。
MDI 子フォームの型が同一でないのであれば、
"richedit" が実装されていることを示すインターフェイスにキャストします。

あとは、メソッドやプロパティを通じて間接的に "richedit のプロパティ" を呼び出します。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
そんぴん
会議室デビュー日: 2006/08/16
投稿数: 16
投稿日時: 2006-08-16 20:13
以下のコードでアクセスできました。


ChildForm hForm = (ChildForm)this.ActiveMdiChild;
if (hForm != null) hForm.呼び出し;
ありがとうございました。またよろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-16 20:57
引用:

そんぴんさんの書き込み (2006-08-16 20:13) より:

以下のコードでアクセスできました。

ChildForm hForm = (ChildForm)this.ActiveMdiChild;
if (hForm != null) hForm.呼び出し;


null チェックのタイミングが誤っていないでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-08-16 22:52
引用:

null チェックのタイミングが誤っていないでしょうか?


何故か、null は何にでもキャストできるんですよね。
なので、そんぴんさんのコードはOKといえばOKです。

_________________
囚人のジレンマな日々
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2006-08-17 06:51
ChildForm型以外が選択されてるときに実行されると例外がとんじゃいますね

ChildFormしかないなら無問題
個人的には
コード:
ChildForm f = this.ActiveMdiWindow as ChildForm;
if(f != null) {
  f.呼び出し();
}


かな
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-17 07:17
引用:

Kazukiさんの書き込み (2006-08-17 06:51) より:

ChildForm型以外が選択されてるときに実行されると例外がとんじゃいますね
ChildFormしかないなら無問題
個人的には

コード:

    ChildForm f = this.ActiveMdiWindow as ChildForm;
    if(f != null) {
        f.呼び出し();
    }


かな


100 点満点 + フォローありがとうございます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-08-17 12:18
引用:

Kazukiさんの書き込み (2006-08-17 06:51) より:
ChildForm型以外が選択されてるときに実行されると例外がとんじゃいますね

ChildFormしかないなら無問題
個人的には
コード:
ChildForm f = this.ActiveMdiWindow as ChildForm;
if(f != null) {
  f.呼び出し();
}


かな


そういえばそうですね。
失礼しました^^;
私も個人的には、as を使いますね。
_________________
囚人のジレンマな日々
1

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