none
カスタムコントロールを作成 RRS feed

  • 質問

  • いつもお世話になります。
    VisualC#2010、WindowsXPでの動作について質問があります。

    Visual C# Express 2010
    を使って、カスタムコントロールを作成しようとしていますが、
    新規作成の一覧にでできません。
    なにか設定とかが必要でしょうか?

    2010年8月13日 5:23

回答

  • Visual C# Express 2010
    を使って、カスタムコントロールを作成しようとしていますが、
    新規作成の一覧にでできません。
    なにか設定とかが必要でしょうか?

    Express Editionなので「カスタムコントロール」用のテンプレートが用意されていないのではないでしょうか。手元のVC#2010Expressで新規プロジェクトを作成し、メニューの[プロジェクト]-[新しい項目の追加]を選んでみましたが、一覧には「カスタムコントロール」は確かにありませんでした。
    VC#2010の上位エディションは持っていないので確認できませんが、代わりにVS2008の最上位エディションで確認したところ、同じ手順で表示される一覧の中に「カスタムコントロール」がありました。

    ちなみに「カスタムコントロール」はSystem.Windows.Forms.Controlクラスまたはその派生クラスを基本クラスとするクラスなので「クラスの追加」で新しいクラスを追加した上で、基本クラス(継承元クラス)をソースコード上で適当に指定してやればよいと思います。

    class Class1
    {
    }
        ↓
    class Class1 : Control ←必要に応じて継承元にするクラスを指定
    {
    }

    • 回答としてマーク 山本春海 2010年9月6日 6:48
    2010年8月13日 6:13
  • 「新しいプロジェクト」から選べるテンプレートの一覧に「カスタムコントロール」のテンプレートは、Express Edition にはありませんが、Professional Edition にはあります。なので、無いのは Express Edition だからでしょう。

     

    Express Edition で「カスタムコントロール」プロジェクトを作るなら、まず「クラスライブラリ」のテンプレートを選択してプロジェクトを作り、[プロジェクト] メニューの [新しい項目の追加] からカスタムコントロールを追加するのがいいと思います。

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    2010年8月13日 8:31
  • > WPFとFormと両方のカスタムコントロールを試してみようと思っているのですが、2008 Express Editionでも見当たらないので、不思議になっているところです。

    Visual Studio 2010 Ultimate ですが、こちらでも カスタムコントロールのプロジェクトが作れるのは WPF だけです。WindowsForms にはありません。WindowsForms の場合、「Window フォーム コントロール ライブラリ」 が該当するかと思います。

    > Expressだからでしょうか。

    Install してないので判りませんが、そうかも知れません。


    ひらぽん http://d.hatena.ne.jp/hilapon/
    • 回答としてマーク 山本春海 2010年9月6日 6:48
    2010年8月13日 14:49
    モデレータ

すべての返信

  • Visual C# Express 2010
    を使って、カスタムコントロールを作成しようとしていますが、
    新規作成の一覧にでできません。
    なにか設定とかが必要でしょうか?

    Express Editionなので「カスタムコントロール」用のテンプレートが用意されていないのではないでしょうか。手元のVC#2010Expressで新規プロジェクトを作成し、メニューの[プロジェクト]-[新しい項目の追加]を選んでみましたが、一覧には「カスタムコントロール」は確かにありませんでした。
    VC#2010の上位エディションは持っていないので確認できませんが、代わりにVS2008の最上位エディションで確認したところ、同じ手順で表示される一覧の中に「カスタムコントロール」がありました。

    ちなみに「カスタムコントロール」はSystem.Windows.Forms.Controlクラスまたはその派生クラスを基本クラスとするクラスなので「クラスの追加」で新しいクラスを追加した上で、基本クラス(継承元クラス)をソースコード上で適当に指定してやればよいと思います。

    class Class1
    {
    }
        ↓
    class Class1 : Control ←必要に応じて継承元にするクラスを指定
    {
    }

    • 回答としてマーク 山本春海 2010年9月6日 6:48
    2010年8月13日 6:13
  • Windows Formsアプリケーションの話だと思って回答していますが、他の投稿を見るとWPFで開発しているという話を見かけました。WPFアプリケーションの場合であれば、VC#2010Expressでも「カスタムコントロール(WPF)」という項目はありました。念のため。
    • 回答としてマーク 山本春海 2010年9月6日 6:48
    • 回答としてマークされていない 山本春海 2010年9月6日 6:49
    2010年8月13日 6:18
  • いくつかのコントロールを含めた複合コントロールを作ろうとされているなら、ユーザーコントロールがあります。

    ソリューションエクスプローラでプロジェクトを選択し右クリック → 追加 → ユーザーコントロール

    でプロジェクトに雛形が追加されます。

    逆になんらかのコントロールを継承するなら、クラスを追加し派生クラスをコードで定義すればいいかと思います。


    ひらぽん http://d.hatena.ne.jp/hilapon/
    2010年8月13日 8:04
    モデレータ
  • 早速ありがとうございます。
    何度「新しいプロジェクト」の一覧を見ても、
    Windows フォーム アプリケーション
    WPF アプリケーション
    コンソール アプリケーション
    クラス ライブラリ
    WPF ブラウザー アプリケーション
    空のプロジェクト
    の項目しか見当たらないです。

    WPFとFormと両方のカスタムコントロールを試してみようと思っているのですが、2008 Express Editionでも見当たらないので、不思議になっているところです。
    Expressだからでしょうか。

    2010年8月13日 8:14
  • 「新しいプロジェクト」から選べるテンプレートの一覧に「カスタムコントロール」のテンプレートは、Express Edition にはありませんが、Professional Edition にはあります。なので、無いのは Express Edition だからでしょう。

     

    Express Edition で「カスタムコントロール」プロジェクトを作るなら、まず「クラスライブラリ」のテンプレートを選択してプロジェクトを作り、[プロジェクト] メニューの [新しい項目の追加] からカスタムコントロールを追加するのがいいと思います。

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    2010年8月13日 8:31
  • > WPFとFormと両方のカスタムコントロールを試してみようと思っているのですが、2008 Express Editionでも見当たらないので、不思議になっているところです。

    Visual Studio 2010 Ultimate ですが、こちらでも カスタムコントロールのプロジェクトが作れるのは WPF だけです。WindowsForms にはありません。WindowsForms の場合、「Window フォーム コントロール ライブラリ」 が該当するかと思います。

    > Expressだからでしょうか。

    Install してないので判りませんが、そうかも知れません。


    ひらぽん http://d.hatena.ne.jp/hilapon/
    • 回答としてマーク 山本春海 2010年9月6日 6:48
    2010年8月13日 14:49
    モデレータ