19/01/10 22:17
balto
Salve ragazzi, sto scrivendo un programma che utilizza un controllo PropertyGrid al fine di permettere all' utente di settare determinate proprietà. Ho fatto tutto perchè la PropertyGrid sia pronta e funziona tutto correttamente. L' unico problema è che io vorrei modificare la proprietà ReadOnlyAttribute di un elemento della PropertyGrid al variare di un altro.
Ad esempio, nella PropertyGrid ho un integer (Count) e una string(Name). Vorrei che se Count ha un certo valore, allora Name è ReadOnly, altrimenti no. Come potrei fare?
Il codice per ora è questo(solo il frammento relativo alla PropertyGrid):
Ad esempio, nella PropertyGrid ho un integer (Count) e una string(Name). Vorrei che se Count ha un certo valore, allora Name è ReadOnly, altrimenti no. Come potrei fare?
Il codice per ora è questo(solo il frammento relativo alla PropertyGrid):
public class ColumnsChartProperties { private int _Count = 1; private string _FirstColumnText = "Prima Colonna", _SecondColumnText = "Seconda Colonna", _ThirdColumnText = "Terza Colonna", _FourthColumnText = "Quarta Colonna"; private List<float> _FirstColumnValues = new List<float>(); private List<float> _SecondColumnValues = new List<float>(); private List<float> _ThirdColumnValues = new List<float>(); private List<float> _FourthColumnValues = new List<float>(); private List<Color> _ColumnsColors = new List<Color>(); private string _YAxeText = "Ordinate"; private int _MinimumValue = 0, _MaximumValue = 100, _IncrementValue = 10; private string _XAxeText = "Ascisse"; private List<string> _XAxeValues = new List<string>(); [CategoryAttribute("Generale"), DescriptionAttribute("Il numero di colonne diverse. Deve essere compreso tra 1 e 4."), DefaultValueAttribute(1)] public int Tipi { get { return _Count; } set { if (value > 0 && value <= 4) _Count = value; else _Count = 1; } } [CategoryAttribute("Prima Colonna"), DescriptionAttribute("Il testo da visualizzare nelle proprietà relative alla colonna."), DefaultValueAttribute("Prima Colonna")] public string TestoPrimaColonna { get { return _FirstColumnText; } set { if (value == "") _FirstColumnText = "Prima Colonna"; else _FirstColumnText = value; } } [CategoryAttribute("Seconda Colonna"), DescriptionAttribute("Il testo da visualizzare nelle proprietà relative alla colonna."), DefaultValueAttribute("Seconda Colonna")] public string TestoSecondaColonna { get { return _SecondColumnText; } set { if (value == "") _SecondColumnText = "Seconda Colonna"; else _SecondColumnText = value; } } [CategoryAttribute("Terza Colonna"), DescriptionAttribute("Il testo da visualizzare nelle proprietà relative alla colonna."), DefaultValueAttribute("Terza Colonna")] public string TestoTerzaColonna { get { return _ThirdColumnText; } set { if (value == "") _ThirdColumnText = "Terza Colonna"; else _ThirdColumnText = value; } } [CategoryAttribute("Quarta Colonna"), DescriptionAttribute("Il testo da visualizzare nelle proprietà relative alla colonna."), DefaultValueAttribute("Quarta Colonna")] public string TestoQuartaColonna { get { return _FourthColumnText; } set { if (value == "") _FourthColumnText = "Quarta Colonna"; else _FourthColumnText = value; } } [CategoryAttribute("Prima Colonna"), DescriptionAttribute("I valori che assume tale colonna.")] public List<float> ValoriPrimaColonna { get { return _FirstColumnValues; } set { _FirstColumnValues = value; } } [CategoryAttribute("Seconda Colonna"), DescriptionAttribute("I valori che assume tale colonna.")] public List<float> ValoriSecondaColonna { get { return _SecondColumnValues; } set { _SecondColumnValues = value; } } [CategoryAttribute("Terza Colonna"), DescriptionAttribute("I valori che assume tale colonna.")] public List<float> ValoriTerzaColonna { get { return _ThirdColumnValues; } set { _ThirdColumnValues = value; } } [CategoryAttribute("Quarta Colonna"), DescriptionAttribute("I valori che assume tale colonna.")] public List<float> ValoriQuartaColonna { get { return _FourthColumnValues; } set { _FourthColumnValues = value; } } [CategoryAttribute("Generale"), DescriptionAttribute("Il colore di ciascuna colonna.")] public List<Color> Colori { get { return _ColumnsColors; } set { _ColumnsColors = value; } } [CategoryAttribute("Asse delle Ordinate"), DescriptionAttribute("Il testo da visualizzare vicino all' asse."), DefaultValueAttribute("Ordinate")] public string TestoY { get { return _YAxeText; } set { if (value == "") _YAxeText = "Ordinate"; else _YAxeText = value; } } [CategoryAttribute("Asse delle Ordinate"), DescriptionAttribute("Il valore minimo della scala sull' asse.\nDeve essere minore del valore massimo e dell' intervallo."), DefaultValueAttribute(0)] public int ValoreMinimo { get { return _MinimumValue; } set { if (value < ValoreMassimo && value < Intervallo) _MinimumValue = value; else { _MinimumValue = 0; _MaximumValue = 100; _IncrementValue = 10; } } } [CategoryAttribute("Asse delle Ordinate"), DescriptionAttribute("Il valore massimo della scala sull' asse.\nDeve essere maggiore del valore minimo e dell' intervallo."), DefaultValueAttribute(100)] public int ValoreMassimo { get { return _MaximumValue; } set { if (value > ValoreMinimo && value > Intervallo) _MaximumValue = value; else { _MinimumValue = 0; _MaximumValue = 100; _IncrementValue = 10; } } } [CategoryAttribute("Asse delle Ordinate"), DescriptionAttribute("L' intervallo tra un valore e l'altro della scala.\nDeve essere maggiore del valore minimo e minore del valore massimo."), DefaultValueAttribute(10)] public int Intervallo { get { return _IncrementValue; } set { if (value > ValoreMinimo && value < ValoreMassimo) _IncrementValue = value; else { _MinimumValue = 0; _MaximumValue = 100; _IncrementValue = 10; } } } [CategoryAttribute("Asse delle Ascisse"), DescriptionAttribute("Il testo da visualizzare vicino all' asse."), DefaultValueAttribute("Ascisse")] public string TestoX { get { return _XAxeText; } set { if (value == "") _XAxeText = "Ascisse"; else _XAxeText = value; } } [CategoryAttribute("Asse delle Ascisse"), DescriptionAttribute("I valori letterali da visualizzare sull'asse.")] public List<string> ValoriAscisse { get { return _XAxeValues; } set { _XAxeValues = value; } } }
Ultima modifica effettuata da balto 19/01/10 22:18
aaa