/****************************** * 说明:自定义多选搜索框 * 创建人:龚宇超 * 创建日期:2017-08-08 * 修改人: * 修改日期: * 修改备注: * 版本:1.0.0.0 ******************************/ 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.Controls; using DevExpress.XtraEditors; using Lskj.Data; using Lskj.Control.Model; using Lskj.Control.MultiGridLookUp; using Lskj.Business.Impl; using Lskj.Util; using Lskj.Control.MultiModelLookUp; using Lskj.Control.HighBeaterInvoice; namespace Lskj.Control { /// /// 高拍仪编辑框 /// public partial class HighShotMeterTextEdit : BaseUserControl { public FrmHighBeater _lookUpForm; /// /// The contro object /// public MyControl ControlObj; /// /// 文本 /// /// The label. public Label Label { get { return lblText; } } /// /// 自动搜索框控件 /// public TextEdit TextEdit { get { return txtEdit; } } /// /// 配置的关联ModuleCodel值 /// /// The Union ModuleCodel. public string UnionModuleCodel; public HighShotMeterTextEdit() { InitializeComponent(); this.Disposed += OnHighShotMeterTextEdit_Disposed; this.TextEdit.KeyDown += new KeyEventHandler(OnKeyDown); } void OnHighShotMeterTextEdit_Disposed(object sender, EventArgs e) { if (this._lookUpForm != null) { if (this._lookUpForm.isopen == true) { this._lookUpForm.axCamCaptureCtl.CloseDevice(); this._lookUpForm.isopen = false; } } } /// /// 说明:设置控件显示文本 /// 创建人:龚宇超 /// 创建日期:2017-08-08 /// 修改人: /// 修改日期: /// 修改备注: /// 版本: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.txtEdit.Properties.AutoHeight = false; 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-08 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public override string EditText { get { return this.txtEdit.Text; } set { this.txtEdit.Text = value; } } /// /// 说明:设置控件提示文本 /// 创建人:龚宇超 /// 创建日期:2017-08-08 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// 返回控件值 public override string NullText { get { return this.txtEdit.Properties.NullValuePrompt; } set { if (!string.IsNullOrEmpty(value)) { this.TextEdit.Properties.NullValuePromptShowForEmptyValue = true; this.TextEdit.Properties.NullValuePrompt = value; } base.NullText = value; } } /// /// 只读文本颜色 /// /// The color of the read only label. public override bool ReadOnly { get { return base.ReadOnly; } set { base.ReadOnly = value; this.txtEdit.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; } } } /// /// 说明:传送数据 /// 创建人:龚宇超 /// 创建日期:2017-08-08 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// 数据源 public void SetDataSource(DataTable dt) { _lookUpForm.dataSource = dt; } /// /// 说明:清空选中的值 /// 创建人:龚宇超 /// 创建日期:2018-08-24 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public void ClearSelectForm() { // _lookUpForm.ClearSelect(); } /// /// 说明:打开界面 /// 创建人:龚宇超 /// 创建日期:2018-03-20 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The source of the event. /// The instance containing the event data. private void btnMore_Click(object sender, EventArgs e) { try { if (_lookUpForm == null) { _lookUpForm = new FrmHighBeater(); _lookUpForm.OpenDev(); } DataTable dt = new DataTable(); foreach (BaseUserControl item in this.Parent.Controls) { dt.Columns.Add(item.Model.FieldName); dt.Columns[item.Model.FieldName].Caption = item.LabelText; //row[item.LabelText] = item.LabelText; } //dt.Rows.Add(row); SetDataSource(dt); string sqlValue = string.Empty; DialogResult result = _lookUpForm.ShowDialog(); if (dt.Rows.Count > 0) { ControlObj.SetAllControlValue(dt.Rows[0]); } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message, ex.Message); } } /// /// 说明:直接回车 /// 创建人:龚宇超 /// 创建日期:2018-03-20 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The source of the event. /// The instance containing the event data. private void OnKeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { DataTable dt = new DataTable(); foreach (BaseUserControl item in this.Parent.Controls) { dt.Columns.Add(item.Model.FieldName); dt.Columns[item.Model.FieldName].Caption = item.LabelText; //row[item.LabelText] = item.LabelText; } SetDataSource(dt); _lookUpForm.OnKeyDown(sender, e); if (dt.Rows.Count > 0) { ControlObj.SetAllControlValue(dt.Rows[0]); } } } } }