102 lines
3.4 KiB
C#
102 lines
3.4 KiB
C#
using DrawGraph;
|
|
using System;
|
|
using System.Drawing;
|
|
using System.Reflection;
|
|
using System.Windows.Forms;
|
|
|
|
namespace DrawGraphManagement.MyUserControl
|
|
{
|
|
public class UCColor : UCBase
|
|
{
|
|
|
|
public UCColor(PackObjBase pob)
|
|
{
|
|
selectPoB = pob;
|
|
}
|
|
|
|
public override Panel GreatPropertyPanel(PropertyInfo info)
|
|
{
|
|
if (selectPoB == null) return null;
|
|
|
|
System.Windows.Forms.Panel panel;
|
|
System.Windows.Forms.Label label;
|
|
System.Windows.Forms.Label labelColor;
|
|
|
|
panel = new System.Windows.Forms.Panel();
|
|
label = new System.Windows.Forms.Label();
|
|
labelColor = new System.Windows.Forms.Label();
|
|
|
|
|
|
labelColor.AutoSize = true;
|
|
labelColor.Dock = System.Windows.Forms.DockStyle.Left;
|
|
labelColor.Name = "label" + selectPoB.PackTag;
|
|
labelColor.Size = new System.Drawing.Size(41, 12);
|
|
labelColor.TabIndex = 0;
|
|
labelColor.Text = " ";
|
|
labelColor.BackColor = (Color)info.GetValue(selectPoB, null);
|
|
labelColor.Tag = info.Name;
|
|
labelColor.Click += new EventHandler(labColor_Click);
|
|
|
|
label.AutoSize = true;
|
|
label.Dock = System.Windows.Forms.DockStyle.Left;
|
|
label.Name = "label" + selectPoB.PackTag;
|
|
label.Size = new System.Drawing.Size(41, 12);
|
|
label.TabIndex = 0;
|
|
label.Text = info.Name;
|
|
object[] bookarr = info.GetCustomAttributes(typeof(ClassAttributs), false);
|
|
if (bookarr.Length > 0)
|
|
{
|
|
ClassAttributs bookattribute1 = (ClassAttributs)bookarr[0];//获取属性类的第一个成员
|
|
if (bookattribute1.Description != null)
|
|
{
|
|
base.toolTip1.SetToolTip(label, bookattribute1.Description.ToString());
|
|
}
|
|
}
|
|
|
|
panel = new System.Windows.Forms.Panel();
|
|
panel.Dock = DockStyle.Top;
|
|
panel.Controls.Add(labelColor);
|
|
panel.Controls.Add(label);
|
|
panel.Location = new System.Drawing.Point(3, 6);
|
|
panel.Name = "panel" + selectPoB.PackTag; ;
|
|
panel.Size = new System.Drawing.Size(200, 27);
|
|
panel.TabIndex = 0;
|
|
|
|
return panel;
|
|
}
|
|
|
|
void labColor_Click(object sender, EventArgs e)
|
|
{
|
|
if (selectPoB == null) return;
|
|
|
|
System.Windows.Forms.Label lab = (sender as System.Windows.Forms.Label);
|
|
try
|
|
{
|
|
if (colorDialog1.ShowDialog() == DialogResult.OK)
|
|
{
|
|
foreach (PropertyInfo p in selectPoB.GetType().GetProperties())
|
|
{
|
|
if (lab.Tag.ToString() == p.Name)
|
|
{
|
|
lab.BackColor = colorDialog1.Color;
|
|
p.SetValue(selectPoB, Convert.ChangeType(colorDialog1.Color, p.PropertyType), null);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
finally
|
|
{
|
|
if (selectPoB != null)
|
|
{
|
|
selectPoB.Draw();
|
|
onChangeValue(selectPoB, e);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|