2012-02-15 13 views
0

用語が間違っている場合は謝罪します。継承されたコントロール、カスタムコントロール、またはユーザーコントロールのどちらを使用するかはわかりません。とにかく、これはコンパクトなフレームワーク3.5 /スマートデバイス開発の質問であることに留意してください。私はボタンから継承するコントロールを持っています。基本的にはグラデーションを描き、コーナーを丸めます。私はこのコントロールに追加した6つのカスタムプロパティを持っています。デザイナーのプロパティウィンドウでこれらのプロパティの値を設定すると、値をリセットすることはできません(つまり、マウスの右クリック - >リセット)。問題は、それらのプロパティの1つがイメージであり、そのイメージを消去する唯一の方法は、ボタンをフォームから削除して再作成することです。私はすべてのプロパティのDesignTimeAttributes.xmtaファイルのデフォルト値を設定しようとしましたが、それは役に立たないようです。 「リセット」はまだ無効です。どんな助けもありがとうございます。クラスのImageプロパティからコードは、次のとおりです。cf 3.5のカスタムコントロールのプロパティ値をリセットできません

Private _Image As Bitmap = Nothing 
Public Property Image() As Bitmap 
    Get 
     Return _Image 
    End Get 
    Set(ByVal value As Bitmap) 
     _Image = value 
     Invalidate() 
    End Set 
End Property 

答えて

0

はこれを試してみてください:

public void ResetImage() 
{ 
    if (Image != null) 
    { 
     Image.Dispose(); 
     Image = null; 
    } 
} 

あなたは常にすべてのプロパティのためのリセット方法で作成できます

public void Reset[PropertyName]() 
{ 
    // Reset your property 
} 

注:設計者は、」勝ちましたXmtaにDefaultValueを設定した場合は、Resetメソッドを呼び出します。

+0

ありがとうございます!信じるのはまだ難しい私は私の検索でこれを渡って来なかった。しかし、あなたのポストを見た後、私はこれを見て、将来この質問を見ている人を助けるはずです:[MSDNはShouldSerializeとリセットメソッドでデフォルト値を定義する](http://msdn.microsoft.com/en-us/library/53b8022e v = 90).aspx) – Bob

関連する問題