using DrawGraph; using System; using System.Reflection; using System.Windows.Forms; namespace DrawGraphManagement.MyUserControl { public class UCSelect : UCBase { //PackObjBase selectPoB = null; public UCSelect(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.ComboBox comboBox1; panel = new System.Windows.Forms.Panel(); label = new System.Windows.Forms.Label(); comboBox1 = new System.Windows.Forms.ComboBox(); // comboBox1 // comboBox1.FormattingEnabled = true; comboBox1.Location = new System.Drawing.Point(435, 4); comboBox1.Dock = DockStyle.Left; comboBox1.Name = "comboBox" + selectPoB.PackTag; comboBox1.Size = new System.Drawing.Size(121, 20); comboBox1.Tag = info.Name; comboBox1.Items.Clear(); foreach (string v in datasource) { comboBox1.Items.Add(v); } Enum ltype = (Enum)info.GetValue(selectPoB, null); comboBox1.Text = ltype.ToString(); comboBox1.TabIndex = 4; comboBox1.SelectedValueChanged += new EventHandler(ComboBox1_SelectedValueChanged); 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; string cName = info.Name; object[] bookarr = info.GetCustomAttributes(typeof(ClassAttributs), false); if (bookarr.Length > 0) { ClassAttributs bookattribute1 = (ClassAttributs)bookarr[0]; if (bookattribute1.CName != null) { cName = bookattribute1.CName; } if (bookattribute1.Description != null) { base.toolTip1.SetToolTip(label, bookattribute1.Description.ToString()); } } label.Text = cName; panel = new System.Windows.Forms.Panel(); panel.Dock = DockStyle.Top; panel.Controls.Add(comboBox1); 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 ComboBox1_SelectedValueChanged(object sender, EventArgs e) { if (selectPoB == null) return; System.Windows.Forms.ComboBox cbb = (sender as System.Windows.Forms.ComboBox); try { foreach (PropertyInfo p in selectPoB.GetType().GetProperties()) { if (cbb.Tag.ToString() == p.Name) { MovePackObjCommand cmd = new MovePackObjCommand(CommandManage.GetInstance.AreaManage, selectPoB); cmd.PreExecute(); object value = Enum.Parse(p.PropertyType, cbb.Text.ToString(), false); p.SetValue(selectPoB, Convert.ChangeType(value, p.PropertyType), null); cmd.LastExecute(); CommandManage.GetInstance.AddCommand(cmd); break; } } } catch (Exception ) { } finally { if (selectPoB != null) { selectPoB.Draw(); onChangeValue(selectPoB, e); } } } } }