コード例 #1
0
        public static MedTextBox CloneMedTextBox(MedTextBox source)
        {
            MedTextBox target = new MedTextBox();

            CloneMedTextBox(source, target);
            return(target);
        }
コード例 #2
0
        /// <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();
                        }
                    }
                }
            }));
        }
コード例 #3
0
 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;
 }
コード例 #4
0
        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;
                    }
                }
            }
        }
コード例 #5
0
        /// <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);
        }