こんにちは、オカピーです。最近はC#を覚え始めてみました。
そこで、最近は以下のサイトを参考にして進めていまして、現在ここをやっています。
http://www.atmarkit.co.jp/fdotnet/dotne ... shown.html
取りあえずは出来たのですが、ここで疑問が生じました。
この章では、コモンコントロールであるListViewを継承した「FileListView」を作っていますが、
この自作コントロールはフォームデザイナにはもちろん表示されません。
そうすると、例えばボタンを1つつけたり、テキストボックスを追加したりするときには
フォームデザイナが一切使えなくなります。
そうするとC#のメリットがひとつ消えてしまうように感じられてしまいます。
これは仕方が無いことなのでしょうか?それとも、継承した自作コントロールをフォームデザイナに
追加することは可能なのでしょうか?
どなたか教えてください。お願いします
【C#】 コントロールの継承
Re: 【C#】 コントロールの継承
一度ビルドして下さい。
ユーザーコントロールやカスタムコントロールは,ビルドに成功しないと表示されません。
これらのコントロールは,デザイン時も実際にコードが動いているためです。
デザイン時と実際の実行時を区別するために,System.ComponentModel.ComponentクラスにはDesignModeプロパティが用意されています。
ユーザーコントロールやカスタムコントロールは,ビルドに成功しないと表示されません。
これらのコントロールは,デザイン時も実際にコードが動いているためです。
デザイン時と実際の実行時を区別するために,System.ComponentModel.ComponentクラスにはDesignModeプロパティが用意されています。
Re: 【C#】 コントロールの継承
一度ビルドしました。
もちろんしっかりと動きましたが、この時点で
フォームデザイナーの意味が完全に無くなっていますがいいのですか?
フォームデザイナーは非常に便利なので使いたいのですが、このソースコードだと
フォームデザイナーとまったく連動しません。
そもそもフォームデザイナーは普通使わないものなのでしょうか?
C#は初心者なもので、ご存知のかた、教えて下さい。
もちろんしっかりと動きましたが、この時点で
フォームデザイナーの意味が完全に無くなっていますがいいのですか?
フォームデザイナーは非常に便利なので使いたいのですが、このソースコードだと
フォームデザイナーとまったく連動しません。
そもそもフォームデザイナーは普通使わないものなのでしょうか?
C#は初心者なもので、ご存知のかた、教えて下さい。
C,C++,C#,これらを極めることを「3C政策」と言う
Re: 【C#】 コントロールの継承
意味が無くなるとは?オカピーα さんが書きました:もちろんしっかりと動きましたが、この時点で
フォームデザイナーの意味が完全に無くなっていますがいいのですか?
該当のクラスが含まれるアセンブリをビルドして生成することで,ツールボックスにクラスが登録されます。
それをフォームやユーザーコントロールにドロップすることで,他のコントロール類と同じように扱うことが出来ます。
どのようなソースコードを書いたのでしょうか。オカピーα さんが書きました:フォームデザイナーは非常に便利なので使いたいのですが、このソースコードだと
フォームデザイナーとまったく連動しません。
WinFormsであれば使います。オカピーα さんが書きました:そもそもフォームデザイナーは普通使わないものなのでしょうか?
Re: 【C#】 コントロールの継承
開発環境が分からないので、今手元にあるVS2008で説明すると・・・。
プロジェクト(P)
↓
コンポーネントの追加(N)
↓
任意のファイル名を入力(今回だとFileListView.csとかでOK)
↓
追加をクリック
↓
ソースコードを表示させる
↓
継承元クラスをComponentからListViewへ変更する(下記参照)
public partial class FileListView : Component ⇒ public partial class FileListView : System.Windows.Forms.ListView
↓
コーディング&ビルドする
↓
フォームデザイナを開く
↓
ツールボックスを開くとFileListViewが追加されているはず
プロジェクト(P)
↓
コンポーネントの追加(N)
↓
任意のファイル名を入力(今回だとFileListView.csとかでOK)
↓
追加をクリック
↓
ソースコードを表示させる
↓
継承元クラスをComponentからListViewへ変更する(下記参照)
public partial class FileListView : Component ⇒ public partial class FileListView : System.Windows.Forms.ListView
↓
コーディング&ビルドする
↓
フォームデザイナを開く
↓
ツールボックスを開くとFileListViewが追加されているはず
Re: 【C#】 コントロールの継承
そのようですね。Ryo さんが書きました:VSの設定で
AutoToolboxPupulateをTrueにしないといけないのではなかったかな
[ツール]メニュー - [オプション] / [Windows フォーム デザイナー] - [全般] / [ツールボックス] - [ツールボックスを自動取得する]
をデフォルトのTrueからFalseに変更したところ,ツールボックスへの自動追加はなくなりました。
まあ,自分で
[プロジェクト]メニュー - [プロジェクト ツールボックス アイテムを最新の情報に更新]
すれば,手動で更新できますが。
# 以上,VS 2012 Express for DesktopおよびVS 2010 Ultimateにて確認。
Re: 【C#】 コントロールの継承
YuO さんが書きました:そのようですね。Ryo さんが書きました:VSの設定で
AutoToolboxPupulateをTrueにしないといけないのではなかったかな
[ツール]メニュー - [オプション] / [Windows フォーム デザイナー] - [全般] / [ツールボックス] - [ツールボックスを自動取得する]
をデフォルトのTrueからFalseに変更したところ,ツールボックスへの自動追加はなくなりました。
まあ,自分で
[プロジェクト]メニュー - [プロジェクト ツールボックス アイテムを最新の情報に更新]
すれば,手動で更新できますが。
# 以上,VS 2012 Express for DesktopおよびVS 2010 Ultimateにて確認。
おぉ!できました!ありがとうございまいた!
C,C++,C#,これらを極めることを「3C政策」と言う