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

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

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

Re[4]: 自分でカスタムしたコントロールを使いまわしたい


(過去ログ 155 を表示中)

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

■90339 / inTopicNo.1)  自分でカスタムしたコントロールを使いまわしたい
  
□投稿者/ 山ライオン (1回)-(2019/02/28(Thu) 09:21:41)

分類:[.NET 全般] 

Windows FormにDataGridViewやその他のコントロールを貼り付けています。

各コントロールはコードで独自に設定をしています。例えば、DataGridViewだと

//DataGridView1の列の幅をユーザーが変更できないようにする
DataGridView1.AllowUserToResizeColumns = false;

//DataGridView1の行の高さをユーザーが変更できないようにする
DataGridView1.AllowUserToResizeRows = false;

のように設定しています。同じ様な設定を他のFormで使いまわしたい場合、
コードをコピペすれば同じ設定になるのはわかりますが手間です。

このような場合、テンプレートみたいなのを一つ用意してコントロールを
使い回せるような事ができたら便利だなと思うのですが、どのようにすればいいのか
わかりません。なんというキーワードで検索すれば良いでしょうか?

環境はVisual Studio 2017 C#を使っています。
引用返信 編集キー/
■90340 / inTopicNo.2)  Re[1]: 自分でカスタムしたコントロールを使いまわしたい
□投稿者/ ムーディ (1回)-(2019/02/28(Thu) 10:01:22)
DataGridViewを継承したクラスを作成して、そのコンストラクタ内で
基底クラス(元のDataGridview)に対して独自のプロパティ設定し、
その継承クラスを既存のDataGridviewクラスの代わりに使えばよいでしょう。
引用返信 編集キー/
■90344 / inTopicNo.3)  Re[2]: 自分でカスタムしたコントロールを使いまわしたい
□投稿者/ 山ライオン (2回)-(2019/02/28(Thu) 17:10:19)
うーん、よくわかりません・・・

https://www.ipentec.com/document/csharp-create-user-control
ご回答頂いた内容を元に検索したらこのようなサイトがひっかかってきました。
このようにやればいいのでしょうか!?

ご回答ありがとうございます。
引用返信 編集キー/
■90345 / inTopicNo.4)  Re[3]: 自分でカスタムしたコントロールを使いまわしたい
□投稿者/ ムーディ (3回)-(2019/02/28(Thu) 17:29:46)
> https://www.ipentec.com/document/csharp-create-user-control

今回提案しているものは、上記のようなユーザコントロールとは別のものです。
例えば、「コントロール 継承」で検索すると、以下のようなサイトがヒットします。


C#でコントロールクラスを継承したユーザーコントロールの作成方法
http://greennoah.hatenablog.jp/entry/20081011/1223713306

この例ではRadioButtonクラスの継承を行っています。
(継承クラス名がUserControl1という、上記ユーザコントロールとも混同してしまいそうなややこしい名前ですが。)
これをDataGridViewにしてあげればよいです。
あとは、このコンストラクタ内で、
this.AllowUserToResizeColumns = false; とか
this.AllowUserToResizeRows = false; などを行えばよいでしょう。
(手元に開発環境がないのと、専門がVBのため、サンプルを提示できませんこと、ご了承ください。)
引用返信 編集キー/
■90353 / inTopicNo.5)  Re[4]: 自分でカスタムしたコントロールを使いまわしたい
□投稿者/ 山ライオン (3回)-(2019/03/01(Fri) 14:47:03)
無事にできました。ありがとうございます!
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -