using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using DevExpress.XtraEditors; using Lskj.Control.Model; namespace Lskj.Control { public partial class LabelRadioButtonGroupEdit : BaseUserControl { public DataTable mTable = new DataTable(); public LabelRadioButtonGroupEdit() { InitializeComponent(); } /// /// 文本控件 /// public RadioGroup TextEdit { get { return radioGroup1; } } /// /// 说明:设置控件显示文本 /// 创建人:龚宇超 /// 创建日期:2017-08-07 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// 显示Lebel文本 public override string LabelText { get { return this.lblText.Text; } set { this.lblText.Text = value; if (FontSize > 0) { this.plLeft.Dock = DockStyle.Left; this.plLeft.AutoSize = false; this.lblText.AutoSize = false; this.lblText.Dock = System.Windows.Forms.DockStyle.Fill; this.lblText.Location = new System.Drawing.Point(0, 0); this.lblText.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.plLeft.Width = value.Length * GetCharWidth(); GetCharWidthMultilingual(this.lblText, this.lblText.Text, this.plLeft); } else { this.plLeft.Width = this.lblText.Width + PaddingLeft; } } } /// /// 字体大小 /// /// The size of the control. public override float FontSize { get { return base.FontSize; } set { base.FontSize = value; if (value > 0) { this.lblText.Font = new Font(this.lblText.Font.FontFamily, value); this.TextEdit.Font = new Font(this.TextEdit.Font.FontFamily, value); } } } /// /// 说明:设置控件值 /// 创建人:龚宇超 /// 创建日期:2017-08-07 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public override string EditText { get { return this.radioGroup1.SelectedIndex == -1 ? "" : this.Model.FieldType == ControlType.LabRadioGroupValue ? this.radioGroup1.Properties.Items[this.radioGroup1.SelectedIndex].Value + "" : this.radioGroup1.Properties.Items[this.radioGroup1.SelectedIndex].Description + ""; } set { if (this.Model != null) { string key = this.Model.FieldType == ControlType.LabRadioGroupValue ? this.Model.ValueMember : this.Model.TextMember; DataRow rowItem = mTable.Rows.Cast().FirstOrDefault(x => x[key] + "" == value); for (int i = 0; i < mTable.Rows.Count; i++) { DataRow item = mTable.Rows[i]; if ((item[key] + "").Equals(value)) { this.radioGroup1.SelectedIndex = i; break; } } } } } /// /// 只读文本颜色 /// /// The color of the read only label. public override bool ReadOnly { get { return base.ReadOnly; } set { base.ReadOnly = value; this.radioGroup1.Properties.ReadOnly = value; this.lblText.ForeColor = value ? base.ReadOnlyLabelForceColor : Required ? base.RequiredLabelForceColor : base.DefaultLabelForceColor; } } /// /// 必填文本颜色 /// /// The color of the required label. public override bool Required { get { return base.Required; } set { base.Required = value; if (value) { this.lblText.ForeColor = base.RequiredLabelForceColor; } } } /// /// 说明:设置数据源 /// 创建人:龚宇超 /// 创建日期:2019-01-10 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The table. public void SetDataSource(ControlModel model, DataTable table) { if (string.IsNullOrEmpty(model.ValueMember) || string.IsNullOrEmpty(model.TextMember) || string.IsNullOrEmpty(model.SourceSql)) { MessageUtil.Show("配置不对哦\r\n这个字段" + model.LabelText + "[Value字段、Text字段、SQL]\r\n这3个列都要配置."); this.radioGroup1.Properties.Items.Clear(); } else { this.mTable = table; this.radioGroup1.Properties.Items.Clear(); this.radioGroup1.Properties.Columns = table.Rows.Count; foreach (DataRow item in table.Rows) { string itemValue = model.FieldType == ControlType.LabRadioGroupValue ? item[model.ValueMember] + "" : item[model.TextMember] + ""; string itemText = item[model.TextMember] + ""; DevExpress.XtraEditors.Controls.RadioGroupItem radioItem = new DevExpress.XtraEditors.Controls.RadioGroupItem(itemValue, itemText); this.radioGroup1.Properties.Items.Add(radioItem); } } } } }