私のばかげた質問には単純な解決策があると思いますが、今日は解決できません。ユーザーコントロール - マスクプロパティエディタで公開されたプロパティに組み込みエディターを使用する方法問題
ユーザーコントロールにはMaskedTextBox
コントロールがあります。私はまた、ユーザーが変更するためのいくつかのプロパティを公開しました。
これらのプロパティのうちの1つは、通常のMaskedTextBoxコントロールのように事前定義された値を持つエディタを起動する機能を公開したいという意味のMask
プロパティです。私は、エディタを使用していない場合は
Object reference not set to an instance of an object
:
だから私は、パブリックプロパティInputMaskを作成し、それが動作できるように、すべてのものを設定しますが、エディタを表示した後、私はこのエラーを含むエラーダイアログを取得しますマスクをコピーするかトラフのコードを問題なく設定できます。ここで
は、コードサンプルです:
...
MaskedTextBox maskedtextbox;
myUserControl()
{
...
maskedtextbox = new MaskedTextBox(){
some stuff...
};
}
[DefaultValue("")]
[Editor("System.Windows.Forms.Design.MaskPropertyEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
[Localizable(true)]
[MergableProperty(false)]
[RefreshProperties(RefreshProperties.Repaint)]
public string InputMask
{
get { return this.maskedtextbox.Mask; }
set { this.maskedtextbox.Mask = value; }
}
それはこの中で、その単純ではありません場合。通常の場合、ui型エディタを登録するだけで十分です。何も追加する必要はありません。しかし、 'MaskPropertyEditor'の場合、プロパティを編集するとき、エディタはそのプロパティが' MaskedTextBox'に属することを期待します。したがって、 'MaskedTextBox'の' Mask'プロパティを正確に編集する必要があります。 –