【C#】 コントロールの継承

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
オカピーα
記事: 120
登録日時: 8年前

【C#】 コントロールの継承

#1

投稿記事 by オカピーα » 7年前

こんにちは、オカピーです。最近はC#を覚え始めてみました。
そこで、最近は以下のサイトを参考にして進めていまして、現在ここをやっています。
http://www.atmarkit.co.jp/fdotnet/dotne ... shown.html
取りあえずは出来たのですが、ここで疑問が生じました。
この章では、コモンコントロールであるListViewを継承した「FileListView」を作っていますが、
この自作コントロールはフォームデザイナにはもちろん表示されません。
そうすると、例えばボタンを1つつけたり、テキストボックスを追加したりするときには
フォームデザイナが一切使えなくなります。
そうするとC#のメリットがひとつ消えてしまうように感じられてしまいます。
これは仕方が無いことなのでしょうか?それとも、継承した自作コントロールをフォームデザイナに
追加することは可能なのでしょうか?
どなたか教えてください。お願いします
C,C++,C#,これらを極めることを「3C政策」と言う

YuO
記事: 941
登録日時: 9年前
住所: 東京都世田谷区

Re: 【C#】 コントロールの継承

#2

投稿記事 by YuO » 7年前

一度ビルドして下さい。
ユーザーコントロールやカスタムコントロールは,ビルドに成功しないと表示されません。
これらのコントロールは,デザイン時も実際にコードが動いているためです。
デザイン時と実際の実行時を区別するために,System.ComponentModel.ComponentクラスにはDesignModeプロパティが用意されています。

オカピーα
記事: 120
登録日時: 8年前

Re: 【C#】 コントロールの継承

#3

投稿記事 by オカピーα » 7年前

一度ビルドしました。
もちろんしっかりと動きましたが、この時点で
フォームデザイナーの意味が完全に無くなっていますがいいのですか?
フォームデザイナーは非常に便利なので使いたいのですが、このソースコードだと
フォームデザイナーとまったく連動しません。
そもそもフォームデザイナーは普通使わないものなのでしょうか?
C#は初心者なもので、ご存知のかた、教えて下さい。
C,C++,C#,これらを極めることを「3C政策」と言う

YuO
記事: 941
登録日時: 9年前
住所: 東京都世田谷区

Re: 【C#】 コントロールの継承

#4

投稿記事 by YuO » 7年前

オカピーα さんが書きました:もちろんしっかりと動きましたが、この時点で
フォームデザイナーの意味が完全に無くなっていますがいいのですか?
意味が無くなるとは?
該当のクラスが含まれるアセンブリをビルドして生成することで,ツールボックスにクラスが登録されます。
それをフォームやユーザーコントロールにドロップすることで,他のコントロール類と同じように扱うことが出来ます。
オカピーα さんが書きました:フォームデザイナーは非常に便利なので使いたいのですが、このソースコードだと
フォームデザイナーとまったく連動しません。
どのようなソースコードを書いたのでしょうか。
オカピーα さんが書きました:そもそもフォームデザイナーは普通使わないものなのでしょうか?
WinFormsであれば使います。

アバター
バグ
記事: 130
登録日時: 9年前
住所: 愛媛県
連絡を取る:

Re: 【C#】 コントロールの継承

#5

投稿記事 by バグ » 7年前

開発環境が分からないので、今手元にあるVS2008で説明すると・・・。

プロジェクト(P)
 ↓
コンポーネントの追加(N)
 ↓
任意のファイル名を入力(今回だとFileListView.csとかでOK)
 ↓
追加をクリック
 ↓
ソースコードを表示させる
 ↓
継承元クラスをComponentからListViewへ変更する(下記参照)
public partial class FileListView : Component ⇒ public partial class FileListView : System.Windows.Forms.ListView
 ↓
コーディング&ビルドする
 ↓
フォームデザイナを開く
 ↓
ツールボックスを開くとFileListViewが追加されているはず

Ryo

Re: 【C#】 コントロールの継承

#6

投稿記事 by Ryo » 7年前

VSの設定で
AutoToolboxPupulateをTrueにしないといけないのではなかったかな

YuO
記事: 941
登録日時: 9年前
住所: 東京都世田谷区

Re: 【C#】 コントロールの継承

#7

投稿記事 by YuO » 7年前

Ryo さんが書きました:VSの設定で
AutoToolboxPupulateをTrueにしないといけないのではなかったかな
そのようですね。
[ツール]メニュー - [オプション] / [Windows フォーム デザイナー] - [全般] / [ツールボックス] - [ツールボックスを自動取得する]
をデフォルトのTrueからFalseに変更したところ,ツールボックスへの自動追加はなくなりました。
まあ,自分で
[プロジェクト]メニュー - [プロジェクト ツールボックス アイテムを最新の情報に更新]
すれば,手動で更新できますが。
# 以上,VS 2012 Express for DesktopおよびVS 2010 Ultimateにて確認。

オカピーα
記事: 120
登録日時: 8年前

Re: 【C#】 コントロールの継承

#8

投稿記事 by オカピーα » 7年前

YuO さんが書きました:
Ryo さんが書きました:VSの設定で
AutoToolboxPupulateをTrueにしないといけないのではなかったかな
そのようですね。
[ツール]メニュー - [オプション] / [Windows フォーム デザイナー] - [全般] / [ツールボックス] - [ツールボックスを自動取得する]
をデフォルトのTrueからFalseに変更したところ,ツールボックスへの自動追加はなくなりました。
まあ,自分で
[プロジェクト]メニュー - [プロジェクト ツールボックス アイテムを最新の情報に更新]
すれば,手動で更新できますが。
# 以上,VS 2012 Express for DesktopおよびVS 2010 Ultimateにて確認。

おぉ!できました!ありがとうございまいた!
C,C++,C#,これらを極めることを「3C政策」と言う

閉鎖

“C言語何でも質問掲示板” へ戻る