C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: Formの継承について


(過去ログ 139 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■81556 / inTopicNo.1)  Formの継承について
  
□投稿者/ C#リハビリ中 (1回)-(2016/10/08(Sat) 23:41:09)

分類:[C#] 

各Form画面に共通のプロパティやイベントがあるので共通フォームクラスを作り、それを継承して派生フォームを作ろうと
考えております。

○共通プロパティの例
・WindowsState,BackColor,StartPosition等

○共通イベント処理
・Load,KeyDown,KeyPress,FormClosing等

・ただ、以前フォームの継承はややこしいからやめたほうがいいと誰かにいわれた記憶があるので、
 上記のやり方を躊躇している状態です。
 ググってもそのあたりの話に触れている有用な話は見つかりませんでした。

・Staticメソッドクラスを作り、イベント発生時に呼び出す方法も考えましたが、
 その方法だと、フォームのプロパティ操作によるデザインの変化を調べるにはプログラムを実行
 しないといけないので、他の方法があれば避けたいと考えています。
 
・このようなケースの場合はフォームの継承を行うべきなのでしょうか。
 それとも別の方法をとるべきなのでしょうか。

引用返信 編集キー/
■81561 / inTopicNo.2)  Re[1]: Formの継承について
□投稿者/ Azulean (724回)-(2016/10/10(Mon) 09:41:08)
デザイナでの見た目も気にするのであれば、継承する以外の手立てはないと思います。

ただ、基底のフォームではプロパティ設定後、DefaultValueAttribute をつけるか、継承先フォームでのデザイン時に触れなくするための BrowsableAttribute をつけるかなど、うまく運用しないと、基底フォームの変更が継承先フォームに追随されなくなるといったトラブルを招くかもしれません。
試作してみて、継承元フォームの背景色を変えた場合にどうなるかなど、実験してみてください。
引用返信 編集キー/
■81564 / inTopicNo.3)  Re[1]: Formの継承について
□投稿者/ shu (918回)-(2016/10/10(Mon) 18:09:32)
No81556 (C#リハビリ中 さん) に返信

試してみる時間があるのなら
継承を使った実装を行ってみて
希望の動作が行えるならよいのではないでしょうか?

継承元に張り付けたコントロールは継承先では外せないので
そういうところは少なくとも気を付けたほうがよいと思います。

引用返信 編集キー/
■81565 / inTopicNo.4)  Re[2]: Formの継承について
□投稿者/ C#リハビリ中 (2回)-(2016/10/10(Mon) 18:12:50)
回答ありがとうございます。

>継承元に張り付けたコントロールは継承先では外せない。

継承元フォームにコントロールを張り付ける予定はありませんが、注意したいと思います。

>試作してみて、継承元フォームの背景色を変えた場合にどうなるかなど、実験してみてください。

ありがとうございます。
プロパティは派生フォームで変更されるかもしれないのでBrowsableAttributeではなくDefaultValueAttributeにする予定です。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -