/// <summary> /// 属性窗属性值更改事件 /// 当是否使用缺省文本属性改变时,保存是否使用缺省文本设置 /// 当文本属性更改时,更新控件文本属性(因为不会自动更新) /// </summary> /// <param name="s"></param> /// <param name="e"></param> private void propertyGrid1_PropertyValueChanged(object s, System.Windows.Forms.PropertyValueChangedEventArgs e) { bool boolOld = false; bool boolNew = false; //是否使用缺省文本属性 if (e.ChangedItem.Label == "IsUseDefaultText") { boolOld = (bool)e.OldValue; boolNew = (bool)e.ChangedItem.Value; } //展开文本属性 else if (e.ChangedItem.Label == "ControlText") { ControlText OldText = (ControlText)e.OldValue; ControlText NewText = (ControlText)e.ChangedItem.Value; OwnControl ownControl = (OwnControl)this.propertyGrid1.SelectedObject; ownControl.ControlText = NewText; boolOld = OldText.IsUseDefaultText; boolNew = NewText.IsUseDefaultText; } //文本属性 else if (e.ChangedItem.Label == "Text") { OwnControl ownControl = (OwnControl)this.propertyGrid1.SelectedObject; ControlText NewText = new ControlText((string)e.ChangedItem.Value, ownControl.ControlText.IsUseDefaultText); ownControl.ControlText = NewText; } //保存到Xml文件 if (boolOld != boolNew) { design.SaveIsUseDefaultTextSetting(this.cboControlList.Text, boolNew); } }
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(System.String) && value is ControlText) { ControlText ct = (ControlText)value; string str = ct.Text + "," + ct.IsUseDefaultText.ToString(); return(str); } return(base.ConvertTo(context, culture, value, destinationType)); }
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) { if (value is string) { try { string str = (string)value; int i = str.LastIndexOf(","); if (i != -1) { ControlText ct = new ControlText(); ct.IsUseDefaultText = bool.Parse(str.Substring(i + 1).Trim()); ct.Text = str.Substring(0, i); return(ct); } } catch { throw new ArgumentException("无法将\"" + (string)value + "\"转换为ControlText类型"); } } return(base.ConvertFrom(context, culture, value)); }