public static MedTextBox CloneMedTextBox(MedTextBox source) { MedTextBox target = new MedTextBox(); CloneMedTextBox(source, target); return(target); }
/// <summary> /// 展示列表下拉框 /// </summary> private void ShowSeletion(MedTextBox textbox) { if (string.IsNullOrEmpty(textbox.DictTableName)) { return; } string whereCondition = textbox.DictWhereString; if (string.IsNullOrEmpty(textbox.DictWhereString) && textbox.DictTableName.ToUpper().Trim().Equals("MED_OPERATING_ROOM")) { string bedType = "0"; whereCondition = "BED_TYPE = '" + bedType + "'"; } whereCondition = TransWhereString(whereCondition); DataRow[] rows = ExtendAppContext.Current.CodeTables[textbox.DictTableName].Select(whereCondition); string displayName = !string.IsNullOrEmpty(textbox.DisplayFieldName) ? textbox.DisplayFieldName : textbox.DictValueFieldName; textbox.HasLookUpItems = rows.Length > 0; Dialog.ShowCustomSelection(rows, displayName, textbox, new System.Drawing.Size(textbox.Width, 300), new EventHandler(delegate(object sender1, EventArgs e1) { if (sender1 is int) { int result = (int)sender1; if (result > -1) { if (textbox.MultiSelect) { if (textbox.Data == null || string.IsNullOrEmpty(textbox.Data.ToString().Trim())) { textbox.Data = rows[result][textbox.DictValueFieldName].ToString(); } else { textbox.Data = textbox.Data.ToString() + "," + rows[result][textbox.DictValueFieldName].ToString(); } textbox.ProgramChanging = true; if (string.IsNullOrEmpty(textbox.Text.Trim())) { textbox.Text = rows[result][textbox.DisplayFieldName].ToString(); } else { textbox.Text = textbox.Text + "," + rows[result][textbox.DisplayFieldName].ToString(); } } else { textbox.Data = rows[result][textbox.DictValueFieldName].ToString(); textbox.ProgramChanging = true; textbox.Text = rows[result][textbox.DisplayFieldName].ToString(); } } } })); }
public static void CloneMedTextBox(MedTextBox source, MedTextBox target) { CloneControl(source, target); target.SourceFieldName = source.SourceFieldName; target.SourceTableName = source.SourceTableName; target.DictTableName = source.DictTableName; target.DictValueFieldName = source.DictValueFieldName; target.DictWhereString = source.DictWhereString; target.DisplayFieldName = source.DisplayFieldName; }
private void MonitorDataEditor_Load(object sender, EventArgs e) { if (!DesignMode) { if (_items != null && _items.Count > 0) { int top = txtInterval.Bottom + 10; int left1 = label1.Left; int left2 = txtInterval.Left; //int height = btnOK.Top - top - 10; int columnIndex = 0, columnCount = ((_items.Count > 5) ? 2 : 1); int width = -30 + (int)(Width - left1 * 2) / columnCount; List <MED_MONITOR_FUNCTION_CODE> monitorFunctionCodeDataTable = ExtendApplicationContext.Current.CommDict.MonitorFuntionDict; for (int i = 0; i < _items.Count; i++) { string item = _items[i]; Label label = new Label(); label.Text = ExtendApplicationContext.Current.MonitorFunctionCodeDict.ContainsKey(item) ? ExtendApplicationContext.Current.MonitorFunctionCodeDict[item] : item; label.Location = new Point(left1 + (30 + width) * columnIndex, top); MedTextBox textBox = new MedTextBox(); if (_values != null && _values.Count > i) { textBox.Text = _values[i].ToString(); } textBox.Location = new Point(left2 + (30 + width) * columnIndex, top); textBox.Width = width - left2 - left1; textBox.Tag = item; textBox.EnterMoveNextControl = true; textBox.TextChanged += new EventHandler(textBox_TextChanged); label.Top += 2; Controls.Add(label); Controls.Add(textBox); label.BringToFront(); bool isNumeric = true; if (monitorFunctionCodeDataTable != null && monitorFunctionCodeDataTable.Count > 0) { foreach (MED_MONITOR_FUNCTION_CODE row in monitorFunctionCodeDataTable) { if (row.ITEM_CODE.Equals(item)) { if (!string.IsNullOrEmpty(row.ITEM_UNIT)) { Label labelUnit = new Label(); labelUnit.Text = row.ITEM_UNIT; labelUnit.Top = label.Top; labelUnit.Left = textBox.Right + 5; Controls.Add(labelUnit); } if (row.VALUE_TYPE.HasValue && row.VALUE_TYPE == 1) { isNumeric = false; } break; } } } if (isNumeric) { textBox.InputType = MedInputType.Nurmeric; } textBox.BringToFront(); if (columnIndex < columnCount - 1) { columnIndex++; } else { top += textBox.Height + 10; columnIndex = 0; } } btnOK.Top = top; btnCancel.Top = top; lblMessage.Top = top; Height = btnOK.Bottom + 10; if (ParentForm != null) { ParentForm.Height = btnOK.Bottom + 50; } } } }
/// <summary> /// 复合输入(选择)框 /// </summary> /// <param name="text">提示内容</param> /// <param name="caption">框标题</param> /// <param name="initValue">初始值</param> /// <param name="inputFormat">输入格式-日期输入时使用或者*号表示文本框为密码输入</param> /// <returns>输入选择结果</returns> public DialogResult MultiInputSelect(ref InputStruct[] inputParameters) { ///如果没有初始值则抛出异常 foreach (InputStruct inputParameter in inputParameters) { if (inputParameter.InitValue == null) { throw new Exception("Please give a not null initilized value!"); } } resultObjects = new object[inputParameters.Length]; singleInputSelectControls = new Control[inputParameters.Length]; singleInputSelectTypes = new string[inputParameters.Length]; inputLabels = new Label[inputParameters.Length]; for (int i = 0; i < inputParameters.Length; i++) { InputStruct inputParameter = inputParameters[i]; //lblInput.Text = inputParameter.Text; //lblInput.Visible = true; Text = inputParameter.Caption; btnOK.Visible = true; btnCancel.Visible = true; inputLabels[i] = new Label(); inputLabels[i].Text = inputParameter.Text; ///输入类型 singleInputSelectTypes[i] = inputParameter.InitValue.GetType().ToString(); ///创建输入选择控件 switch (singleInputSelectTypes[i]) { case "System.DateTime": if (inputParameter.InputFormat.Equals("时间")) { singleInputSelectControls[i] = new MaskedTextBox(); (singleInputSelectControls[i] as MaskedTextBox).Mask = "00:00"; (singleInputSelectControls[i] as MaskedTextBox).Font = new Font("宋体", 20); (singleInputSelectControls[i] as MaskedTextBox).InsertKeyMode = InsertKeyMode.Overwrite; (singleInputSelectControls[i] as MaskedTextBox).Text = ((DateTime)inputParameter.InitValue).ToString("HH:mm"); (singleInputSelectControls[i] as MaskedTextBox).KeyDown += Key_Down; (singleInputSelectControls[i] as MaskedTextBox).KeyUp += Key_Up; (singleInputSelectControls[i] as MaskedTextBox).TextChanged += Text_Changed; } else { singleInputSelectControls[i] = new DateTimePicker(); (singleInputSelectControls[i] as DateTimePicker).Format = DateTimePickerFormat.Custom; (singleInputSelectControls[i] as DateTimePicker).Font = new Font("宋体", 20); (singleInputSelectControls[i] as DateTimePicker).CustomFormat = inputParameter.InputFormat; if (inputParameter.InputFormat.ToLower().Contains("hh:mm")) { (singleInputSelectControls[i] as DateTimePicker).ShowUpDown = true; } (singleInputSelectControls[i] as DateTimePicker).Value = (DateTime)inputParameter.InitValue; } break; case "System.String[]": singleInputSelectControls[i] = new DevExpress.XtraEditors.ComboBoxEdit(); (singleInputSelectControls[i] as DevExpress.XtraEditors.ComboBoxEdit).Properties.Items.AddRange(inputParameter.InitValue as string[]); if ((inputParameter.InitValue as string[]).Length > 0) { (singleInputSelectControls[i] as DevExpress.XtraEditors.ComboBoxEdit).SelectedIndex = 0; } break; default: singleInputSelectControls[i] = new MedTextBox(); (singleInputSelectControls[i] as MedTextBox).Text = inputParameter.InitValue.ToString(); if (inputParameter.InputFormat.Equals("*")) { (singleInputSelectControls[i] as MedTextBox).PasswordChar = '*'; } break; } singleInputSelectControls[i].Left = lblInput.Left; singleInputSelectControls[i].Width = ClientRectangle.Width - singleInputSelectControls[i].Left * 2; inputLabels[i].Left = lblInput.Left; inputLabels[i].Top = lblInput.Top + i * (inputLabels[i].Height + singleInputSelectControls[i].Height + 2); singleInputSelectControls[i].Top = inputLabels[i].Top + inputLabels[i].Height; Controls.Add(inputLabels[i]); Controls.Add(singleInputSelectControls[i]); singleInputSelectControls[i].TabIndex = i; if (singleInputSelectControls[i] is MaskedTextBox) { (singleInputSelectControls[i] as MaskedTextBox).Enter += new EventHandler( delegate(object sender1, EventArgs e1) { (sender1 as MaskedTextBox).SelectAll(); } ); } } DialogResult ret = ShowDialog(); for (int i = 0; i < inputParameters.Length; i++) { inputParameters[i].InitValue = resultObjects[i]; } return(ret); }