重複の可能性:
条件付きの「閲覧可能」属性
AppSettings
いくつかのプロパティを持つクラスを定義します。私のフォームでは、click Button1
プロパティ1と2を表示したい(1,2は表示、その他のプロパティは非表示または非表示)、click Button2
プロパティ2と3を表示したい(1は非表示、2,3は表示、他のプロパティは非表示または非表示です)、どうすればよいですか?
public class AppSettings
{
[BrowsableAttribute(true), CategoryAttribute("Document Settings"), DefaultValueAttribute(true)]
public bool SaveOnClose{ get; set; }
[BrowsableAttribute(true), CategoryAttribute("Global Settings"), ReadOnlyAttribute(true), DefaultValueAttribute("Welcome to AppDev!")]
public string GreetingText { get; set; }
[BrowsableAttribute(true), DescriptionAttribute("The rate in milliseconds that the text will repeat."), CategoryAttribute("Global Settings"), DefaultValueAttribute(10)]
public int MaxRepeatRate { get; set; }
[BrowsableAttribute(true), CategoryAttribute("Global Settings"), DefaultValueAttribute(4)]
public int ItemsInMRUList { get; set; }
[BrowsableAttribute(true), DefaultValueAttribute(false)]
public bool SettingsChanged { get; set; }
[BrowsableAttribute(true), CategoryAttribute("Version"), DefaultValueAttribute("1.0"), ReadOnlyAttribute(true)]
public string AppVersion { get; set; }
}
BrowseAttribute
動的にtrueまたはfalseに変更したい。どうすればいいですか?
フォームコードは:
AppSettings AppSet = new AppSettings();
AppSet.AppVersion = "2.3";
AppSet.SaveOnClose = true;
AppSet.GreetingText = "Welcome to Dar!";
AppSet.ItemsInMRUList = 4;
AppSet.MaxRepeatRate = 10;
AppSet.SettingsChanged = false;
...
propertyGrid1.SelectedObject = AppSet;
この変更にはエラーがあります:
public static bool state = true;
BrowsableAttribute(state)
エラー:
属性の引数は、定数式、typeof式、または属性パラメーターtypeの配列作成式である必要があります。