check point
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
using System.Reflection;
|
||||
using Inspectron.Settings.WindowsWizard.Interfaces;
|
||||
|
||||
namespace Inspectron.Settings.WindowsWizard.Controls
|
||||
{
|
||||
public partial class EnumEditor : UserControl,ISetupItem
|
||||
{
|
||||
private PropertyInfo _prp;
|
||||
private object _obj;
|
||||
|
||||
public EnumEditor()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void SetProperty(object obj, string propertyName)
|
||||
{
|
||||
GroupBox gb = new GroupBox();
|
||||
gb.Text = PropHelper.SplitCamelCase(propertyName);
|
||||
this.Controls.Add(gb);
|
||||
gb.Dock = DockStyle.Fill;
|
||||
FlowLayoutPanel flp = new FlowLayoutPanel();
|
||||
|
||||
gb.Controls.Add(flp);
|
||||
flp.Dock = DockStyle.Fill;
|
||||
_prp = PropHelper.GetPrp(obj, propertyName);
|
||||
_obj = obj;
|
||||
var names = Enum.GetNames(_prp.PropertyType);
|
||||
var values = Enum.GetValues(_prp.PropertyType);
|
||||
var curValue = _prp.GetValue(_obj);
|
||||
int cnt = 0;
|
||||
foreach (string name in names)
|
||||
{
|
||||
var rb = new RadioButton() {Text = name};
|
||||
var cnt1 = cnt;
|
||||
rb.CheckedChanged += (sender, args) =>
|
||||
{
|
||||
if (rb.Checked) _prp.SetValue(_obj, values.GetValue(cnt1));
|
||||
};
|
||||
flp.Controls.Add(rb);
|
||||
if ((int)curValue == (int)values.GetValue(cnt1))
|
||||
{
|
||||
rb.Checked = true;
|
||||
}
|
||||
cnt++;
|
||||
}
|
||||
this.Controls.Add(gb);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user