7

を含む WinForms フォームがありDataGridViewます。にDataGridView設定されていprotectedます。

そのフォームを継承するとDataGridView、Visual Studio デザイナーで を変更できなくなります。ですべてを行うと、Button期待どおりに機能します。

これを修正する方法はありますか?

一部の (切り取られた) コード (DatagridForm.Designer.cs から):

partial class DatagridForm {
    protected DataGridView dgData;
    protected Button button;
}

および Inherited.cs から:

partial class Inherited : DatagridForm {

}
4

1 に答える 1

9

このブログには解決策があります。適切なデザイナーのものを指す継承されたユーザーコントロールを作成するだけです。

[Designer(typeof(System.Windows.Forms.Design.ControlDesigner))]
public class ucInheritedDataGridView : DataGridView { }

チャームのように機能します。System.Design唯一の欠点は、System.Forms.Designをサポートしていないため(参照として追加する必要がある)、.NETクライアントプロファイルを使用できないことです。クライアントプロファイルは4.5ごとに非推奨になっているため、これはそれほど問題にはならないはずです。

クライアントプロファイルが本当に必要な場合、別の回避策は、をラップするDataGridViewことPanelです。これは、移動およびサイズ変更できます。

于 2013-02-26T13:16:13.503 に答える