示例#1
0
        // 获得表示控件状态的字符串
        public static string GetUiState(List <object> controls)
        {
            StringBuilder text = new StringBuilder();

            foreach (object obj in controls)
            {
                if (text.Length > 0)
                {
                    text.Append(";");
                }

                object control = obj;

                // 注:本来集合中没有必要添加 ControlWrapper 对象,但可能出于和 SetUiState() 对称的角度,会复制同样的代码使用 ControlWrapper,等于缺省值部分这里无用罢了
                //object default_value = null;
                if (obj is ControlWrapper)
                {
                    ControlWrapper wrapper = obj as ControlWrapper;
                    control = wrapper.Control as object;
                    //default_value = wrapper.DefaultValue;
                }


                if (control is ListView)
                {
                    text.Append(
                        GetListViewState(control as ListView)
                        );
                }
                else if (control is SplitContainer)
                {
                    text.Append(
                        GetSplitContainerState(control as SplitContainer)
                        );
                }
                else if (control is ToolStripButton)
                {
                    text.Append(
                        GetToolStripButtonState(control as ToolStripButton)
                        );
                }
                else if (control is NumericUpDown)
                {
                    text.Append(
                        GetNumericUpDownState(control as NumericUpDown)
                        );
                }
                else if (control is TabComboBox)
                {
                    text.Append(
                        GetTabComboBoxState(control as TabComboBox)
                        );
                }
                else if (control is ComboBox)
                {
                    text.Append(
                        GetComboBoxState(control as ComboBox)
                        );
                }
                else if (control is ComboBoxText)
                {
                    text.Append(
                        GetComboBoxTextState(control as ComboBoxText)
                        );
                }
                else if (control is TabControl)
                {
                    text.Append(
                        GetTabControlState(control as TabControl)
                        );
                }
                else if (control is CheckBox)
                {
                    text.Append(
                        GetCheckBoxState(control as CheckBox)
                        );
                }
                else if (control is CheckedListBox)
                {
                    text.Append(
                        GetCheckListBoxState(control as CheckedListBox)
                        );
                }
                else if (control is TextBox)
                {
                    text.Append(
                        GetTextBoxState(control as TextBox)
                        );
                }
                else if (control is SavePassword)
                {
                    text.Append(
                        GetSavePasswordState(control as SavePassword)
                        );
                }
                else if (control is DpTable)
                {
                    text.Append(
                        GetDpTableState(control as DpTable)
                        );
                }
                else if (control is RadioButton)
                {
                    text.Append(
                        GetRadioButtonState(control as RadioButton)
                        );
                }
                else if (control is Form)
                {
                    text.Append(
                        GetFormState(control as Form)
                        );
                }
                else if (control is CheckedComboBox)
                {
                    text.Append(
                        GetCheckedComboBoxState(control as CheckedComboBox)
                        );
                }
                else
                {
                    throw new ArgumentException("不支持的类型 " + control.GetType().ToString());
                }
            }

            return(text.ToString());
        }
示例#2
0
        // 恢复控件的尺寸状态
        // 字符串里面每个分号间隔的部分,负责定义一个控件的状态
        public static void SetUiState(List <object> controls,
                                      string strStates)
        {
            string[] sections = strStates.Split(new char[] { ';' });

            int i = 0;

            foreach (object obj in controls)
            {
#if NO
                if (i >= sections.Length)
                {
                    break;
                }
#endif
                string strState = "";
                if (i < sections.Length)
                {
                    strState = sections[i];
                }

                object control = obj;

                object default_value = null;
                if (obj is ControlWrapper)
                {
                    ControlWrapper wrapper = obj as ControlWrapper;
                    control       = wrapper.Control as object;
                    default_value = wrapper.DefaultValue;
                }

                if (control is ListView)
                {
                    SetListViewState(control as ListView, strState);
                }
                else if (control is SplitContainer)
                {
                    SetSplitContainerState(control as SplitContainer, strState);
                }
                else if (control is ToolStripButton)
                {
                    SetToolStripButtonState(control as ToolStripButton, strState);
                }
                else if (control is NumericUpDown)
                {
                    SetNumericUpDownState(control as NumericUpDown, strState);
                }
                else if (control is TabComboBox)
                {
                    SetTabComboBoxState(control as TabComboBox, strState);
                }
                else if (control is ComboBox)
                {
                    SetComboBoxState(control as ComboBox, strState, default_value);
                }
                else if (control is ComboBoxText)
                {
                    SetComboBoxTextState(control as ComboBoxText, strState, default_value);
                }
                else if (control is TabControl)
                {
                    SetTabControlState(control as TabControl, strState);
                }
                else if (control is CheckBox)
                {
                    SetCheckBoxState(control as CheckBox, strState, default_value);
                }
                else if (control is CheckedListBox)
                {
                    SetCheckedListBoxState(control as CheckedListBox, strState);
                }
                else if (control is TextBox)
                {
                    SetTextBoxState(control as TextBox, strState, default_value);
                }
                else if (control is SavePassword)
                {
                    SetSavePasswordState(control as SavePassword, strState);
                }
                else if (control is DpTable)
                {
                    SetDpTableState(control as DpTable, strState);
                }
                else if (control is RadioButton)
                {
                    SetRadioButtonState(control as RadioButton, strState);
                }
                else if (control is Form)
                {
                    SetFormState(control as Form, strState);
                }
                else if (control is CheckedComboBox)
                {
                    SetCheckedComboBoxState(control as CheckedComboBox, strState, default_value);
                }
                else
                {
                    throw new ArgumentException("不支持的类型 " + control.GetType().ToString());
                }

                i++;
            }
        }