- - PR -
継承フォームのサイズ変更について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-05-29 11:26
Location、Size のみならず、コントロールが消えたりと、 2002 時代から妙な動作が耐えないんですよ。 Visual Studio という IDE が、不得意なだけかもしれませんが。 継承するのであれば、せめて GUI 部分以外の機能のみにした方が良いです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-05-29 12:40
以前、こうして対応しました。
// ベースフォーム public class BaseForm { } // 継承フォーム public class Form1 : BaseForm { // イニシャライザ static Form1() { // ベースフォームのインスタンスを作成し、サイズを取得 BaseForm frm = new BaseForm(); s_OriginalSize = frm.Size; frm.Dispose(); } private static Size s_OriginalSize; public Form1() { InitialiseCompornent(); this.Size = s_OriginalSize; } } ちょっと前になるので記憶はあいまいなのですが、 継承フォームを初めて作成するときにベースフォームを作成して必要な値を取得します。 値のセットは、Load で行っていたかもしれません。 | ||||
|
投稿日時: 2006-05-29 12:50
それだったらこの方がいいかもしれません。
必要のないフォームのインスタンスを作るのは、あまりお勧めできませんね。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-05-29 13:07
さかもとです。
じゃんぬねっと様、 なるほど、そういう面でしたか(笑) 「継承フォーム」デザイン面で使えないのは業務アプリでは結構厳しいかもですね・・・。 masa様 なるほど、こういうことも出来るのですね、囚人様がおっしゃる部分と合わせて参考にさせて頂きます。 ありがとうございました。 | ||||
|
投稿日時: 2006-05-29 13:08
そういえばそうですね。
フォームに限らずカスタムコントロールのプロパティなんかも、 途中で初期値を変更して!ってなると大変ですよね。 属性つけておいてデザイナがコードを書かないように、とか気を使います。 ↑ たいてい後で気がつく。。。 | ||||
|
投稿日時: 2006-05-29 23:34
僕も業務アプリで似たようなデザインのフォームを大量に書くとき、ベースフォームクラスを作って大量に派生させる人なので、お気持ちはよくわかります。 そういうことであれば、多少面倒くさくてもベースクラスのみでサイズを指定できるようにして、継承クラス側からサイズの変更ができないように細工する方が良いかもしれません。 | ||||
|
投稿日時: 2006-05-30 07:49
そうなんでしょうか? (;^-^) 私も、勘定系・業務系プログラマですが、そこまでして継承する必要があるように思えません。 たとえば、検索フォームのような類は 1 つだけあれば良いですよね? おそらく、そういう類ではなく、各業務ごとの画面の一部を統一させたいのだと思います。 もしそうであれば、共通になるものをユーザーコントロールにして貼れば良いでしょう。 実装はともかく、継承は "ガン" になり得るので、継承で「ガンガンいこうぜ」は一考の余地アリでしょう。 もしやるにしても、InitializeComponent は避けるように書きたいところです。 また、基底フォームに SPREAD などを貼って、リソースを剥がされて大後悔しないようにしたいです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-05-30 09:24
さかもとと申します。
今回、サイズとしてこだわったのは以下の経緯がありまして・・・。 1:開発開始当初にクライアントのディスプレイ型が決まっていなかった(17インチか15インチか) 2:取り合えず15インチ用で画面のレイアウトを設計して作っていたら結局17インチになってしまった。 3:17インチにぴったりと合うサイズに画面を変更したい(最大化表示ではなく) そこで最初に継承フォームを利用しておき、サイズを何とか・・・という質問になりました。もちろん、このケースは「先に仕様決めとけ」とか「画面サイズに縛られる作り方をするのが悪い」とか「今後ディスプレイ変わったらまた作り直す気?」という意見はあるかと思いますが・・・それは置いておいての質問でした(笑) どちらにしても、作り方を考え直したいと思います。 IDEの問題などで後でひどい目に会うと恐ろしいので・・・。 ありがとうございました。 それと、この話の流れから生まれた疑問ですが、別スレッド(別会議室)のほうが適切だと思い、そちらに新しく質問をさせて頂きました。 勘定系・業務系アプリの画面構成・推移について |