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

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

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

Re[4]: 派生コントロールへの置き換えでDesignerを編集


(過去ログ 83 を表示中)

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

■49051 / inTopicNo.1)  派生コントロールへの置き換えでDesignerを編集
  
□投稿者/ タカミ (3回)-(2010/04/21(Wed) 09:48:08)

分類:[C#] 

Visual Studio 2005でC#で開発しています。
DataGridViewが設置されたFormが十数個あります。
それぞれ、カラムがあったりなかったり、背景色や、ヘッダサイズなどをForm個別に指定しています。
コーディングがある程度進んだ段階で、すべてのDataGridViewに共通機能を持たせるため、
DataGridViewの派生クラス(MyDataGridView)を作成し、置き換えることになりました。

しかし単純にデザイナで削除して、ツールボックスから派生クラスのコンポーネントを貼ると、
それまでDataGridViewに施していた設定が消えてしまいます。

そこで「hoge.Designer.cs」を開き、以下の2箇所を「hoge.MyDataGridView」に置換しました。
・InitializeComponent()でSystem.Windows.Forms.DataGirdVewをnewしている箇所
・末尾でprivateフィールドとしてSystem.Windows.Forms.DataGirdVewを宣言している箇所
上記置換を行ってからビルドすると、希望通り各Formへの個別設定を保持したまま、
DataGridViewをMyDataGridViewに置き換えることができました。
今のところ編集した箇所がDataGridViewに戻ったりすることは起きていません。

質問です。
(1)上記の手順は邪道でしょうか?
(2)勝手にMyDataGridViewに置き換えた箇所がDataGridViewに戻ることは起こりえるのでしょうか?
(3)上記手順でDesigner.csを編集したことで何か不具合が起こることはあるのでしょうか?

引用返信 編集キー/
■49059 / inTopicNo.2)  Re[1]: 派生コントロールへの置き換えでDesignerを編集
□投稿者/ 渋木宏明(ひどり) (1308回)-(2010/04/21(Wed) 11:11:29)
渋木宏明(ひどり) さんの Web サイト
> (1)上記の手順は邪道でしょうか?

微妙なとこですね。

デザイナを作った人の立場で言えば「自動生成されたコードを手でじった場合の結果は知らないよん」てのが基本スタンスでしょう。

なので、デザイナの挙動を理解した上で、自動生成コードを手動で弄ったことによるリスクも受け入れられるようなら問題ないとは思いますが。

> (2)勝手にMyDataGridViewに置き換えた箇所がDataGridViewに戻ることは起こりえるのでしょうか?

は、たぶん無いはずです。

いかなる場合もそうである保証はもちろんありませんが。

> (3)上記手順でDesigner.csを編集したことで何か不具合が起こることはあるのでしょうか?

「たぶん」大丈夫だと思うけど、それを保証してくれる人はどこにもいません。

結果に責任を負うのは、あくまでも自分です。
引用返信 編集キー/
■49087 / inTopicNo.3)  Re[2]: 派生コントロールへの置き換えでDesignerを編集
□投稿者/ タカミ (4回)-(2010/04/21(Wed) 22:43:00)
ありがとうございます。

Designer.csに編集するなと書いてある以上、何が起きても仕方はないのは覚悟していました。
とりあえずソース管理をしっかりすることで対処する予定です。

ところで、ある程度コードを(特に画面の)書き進めてから、
派生コントロールを置き換える、ということはあまりみなさん行わないのでしょうか。
普通は共通機能を洗い出して、派生コントロールを作ってから、コーディングに入るという
スタイルが多いと思われるので、そういった置き換えの場面にあまり出くわさないのかもしれませんけど…。

そういった場合、みなさん多少面倒でも既存コントロールを削除してから、ツールボックスから派生コントロールを
貼り付けていますか?
引用返信 編集キー/
■49089 / inTopicNo.4)  Re[3]: 派生コントロールへの置き換えでDesignerを編集
□投稿者/ やじゅ (1596回)-(2010/04/21(Wed) 23:54:08)
やじゅ さんの Web サイト
No49087 (タカミ さん) に返信
> そういった場合、みなさん多少面倒でも既存コントロールを削除してから、ツールボックスから派生コントロールを
> 貼り付けていますか?

私はしないです、タカミ さん同様にDesigner.csで編集してしまいますね。
テキストエディタで一括置換できるところはやってしまう。

引用返信 編集キー/
■49199 / inTopicNo.5)  Re[4]: 派生コントロールへの置き換えでDesignerを編集
□投稿者/ タカミ (5回)-(2010/04/26(Mon) 21:24:25)
遅くなりましたが、回答ありがとうございました。
あれからまだ何も問題は起きていません。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -