none
Designer.cs に書き出される内容を Form.cs に書き出せるのでしょうか? 手作業じゃなく自動で RRS feed

  • 質問

  • SourceGrid のサンプルコードを読んでいたら、

    Designer.cs じゃなく Form.cs 内に

    以下のような記述部分 (region) がありました。

     

    コード ブロック

    #region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
      this.grid1 = new SourceGrid.Grid();

     

    気になったのは "Designer generated code" と書かれていることです。


    普通、Form デザイナーで作業をしていると、デザイナーで行った処理は
    Designer.cs に出力されるのですが、上のコードは Form.cs に書かれています。

     

    こんなことって普通にデザイナーを扱っていてもできるのでしょうか?


    何か特別な設定をすると、こんな風に Designer.cs に書かれそうな部分が、
    Designer.cs に書き出されず、代わりに Form.cs に書き出されるようになるん
    でしょうか?


    - 確認画像

     

    2008年1月22日 11:58

回答

  •  custar さんからの引用

    何か特別な設定をすると、こんな風に Designer.cs に書かれそうな部分が、
    Designer.cs に書き出されず、代わりに Form.cs に書き出されるようになるん
    でしょうか?

    Visual Studio.NET 2003以前のC#のデザイナではこういう風に出力されました。

    というより、partial classという、クラスを2つ以上にファイルに分ける機能がVisual Studio 2005(C#2.0)からの機能だからです。

     

    .NET 2003のプロジェクトをアップグレードすると、Designer.csに分離されると言うこともなく、Form.csファイルというように1つのままになります。

     

    VS2005でその設定にできるかどうかは分かりませんが、1ファイルがさらに長くなるのでお薦めできません。

    2008年1月22日 14:07
    モデレータ

すべての返信

  •  custar さんからの引用

    何か特別な設定をすると、こんな風に Designer.cs に書かれそうな部分が、
    Designer.cs に書き出されず、代わりに Form.cs に書き出されるようになるん
    でしょうか?

    Visual Studio.NET 2003以前のC#のデザイナではこういう風に出力されました。

    というより、partial classという、クラスを2つ以上にファイルに分ける機能がVisual Studio 2005(C#2.0)からの機能だからです。

     

    .NET 2003のプロジェクトをアップグレードすると、Designer.csに分離されると言うこともなく、Form.csファイルというように1つのままになります。

     

    VS2005でその設定にできるかどうかは分かりませんが、1ファイルがさらに長くなるのでお薦めできません。

    2008年1月22日 14:07
    モデレータ
  •  Azulean さんからの引用

    Visual Studio.NET 2003以前のC#のデザイナではこういう風に出力されました。

     

    sourcegrid 自体、VS2005 より前からあったようなので、VS2003 辺りからの名
    残なのかもしれませんね。

     

    VS2005 での話がドキュメントに見られるので、てっきり Express Edition 以
    外の製品ではそういうことが可能なのか?と思いました。


    Azulean さん、情報ありがとうございます。

    2008年1月22日 17:03