1

以下のようなコードがあります。Microsoft Visual C#ExpressEditionを使用しています。私の問題は、別のクラスのメンバーであるデザイン時にDataGridViewに列を追加できないことです。これが私のコードです:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ClassLibrary1
{
    public class Class1 : Panel
    {
        DataGridView mView;

        public Class1()
        {
        mView = new DataGridView();
        this.Controls.Add(mView);
        }

        public DataGridView View
        {
            get { return mView; }
            set { mView = value; }
        }
    }
}

3つの点線のボタンをクリックして、プロパティウィンドウに新しい列を追加すると、デザイン時にSystem.NullExceptionが発生しました。評判が良かったため、スクリーンショットを投稿できませんでした。

手伝ってくれてありがとう!

4

1 に答える 1

1

私はあなたの質問をもっと深く調べます。残念ながら、記載されている内容を再現することができました。usercontrolsのDataGridViewでいくつかの調査を行った後、私は次の投稿にざっと目を通しました。

継承されたDataGridViewは視覚的にサポートされていないようです。また、DataGridViewを使用するuserControlsもサポートされていないようです。この記事もご覧ください。

次の継承されたDataGridViewクラスを使用してみましたが、どちらも機能しませんでした。適切な解決策がないことをお詫び申し上げますが、これがお役に立てば幸いです。

/// tried this attribute - did not work
/// [Designer(typeof (System.Windows.Forms.Design.ControlDesigner))]

/// this did not work either
[Editor("System.Windows.Forms.Design.DataGridViewComponentEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(ComponentEditor))]
[Designer("System.Windows.Forms.Design.DataGridViewDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public class ucInheritedDataGridView : DataGridView { }
于 2011-10-30T21:27:58.787 に答える