前提・実現したいこと
C#にて、Windows Formアプリケーションの開発を行っています。
基底となるフォームを作成し、そのフォームを継承する形で
複数のフォームの開発を行おうとしています。
基底のフォームにbool型のプロパティをデフォルト値をtrueにして
継承する各種フォームで必要に応じてtrue/falseを
フォームデザイナ上で指定したいと考えています。
実際には、基底フォーム上にコントロールが置かれており、
visibleのtrue/falseを継承するフォーム側で指定したいです。
基本的には表示する項目であり、例外的に非表示にすることがあるので
既定値をtrueにしたいです。
継承する側のコンストラクタで指定してもよいのですが、
なぜこの方法でできないのかわからないので質問させて頂いています。
発生している問題・エラーメッセージ
基底フォームクラス(From1)にてbool型のプロパティ(hoge)を作成し、
BrowsableAttributeをtrueに、
DefaultValueAttributeをtrueに指定しました。
そして、基底フォームを継承するフォーム(Form2)を作成しました。
Form2のbool型プロパティの既定値はtrueであるような振る舞いをしてほしいのですが、
falseであるかのような振る舞いをしてしまいます。
具体的には、Form2のプロパティウィンドウでリセットを行うと、
falseになってしまいます。また、trueの時に強調表示されます。
DefaultValueAttributeの使い方が間違っているのでしょうか?
bool型のプロパティの既定値をtrueにしたいです。
該当のソースコード
C#
1using System.ComponentModel; 2using System.Windows.Forms; 3namespace WindowsFormsApplication1 4{ 5 public partial class Form1 : Form 6 { 7 public Form1() 8 { 9 InitializeComponent(); 10 } 11 12 [Browsable(true)] 13 [DefaultValue(true)] 14 public bool hoge { get; set; } 15 16 } 17} 18
C#
1namespace WindowsFormsApplication1 2{ 3 public partial class Form2 : WindowsFormsApplication1.Form1 4 { 5 public Form2() 6 { 7 InitializeComponent(); 8 } 9 } 10}
補足情報(FW/ツールのバージョンなど)
Visual Studio 2013
.Net Framework 3.5 SP1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/21 11:25
2020/08/21 11:30
2020/08/21 12:35