Exemple #1
0
        private void ShowCombobox(FormMain.ButtonInfo parentButton, FormMain.GroupsInfo combobox, int index)
        {
            // hide previous controls
            if (index == 0)
            {
                panelButtons.Controls.Clear();
            }
            Size  size  = new Size(buttonWidth, buttonHeight);
            Point point = CalcButtonLocation(index);

            // show combobox
            Label    lbl = new Label();
            ComboBox cmb = new ComboBox();
            //btn.Text = button.m_name;
            Dictionary <FormMain.ButtonInfo, FormMain.GroupsInfo> data = new Dictionary <FormMain.ButtonInfo, FormMain.GroupsInfo>();

            data.Add(parentButton, combobox);
            cmb.Tag                   = data;
            cmb.Size                  = size;
            cmb.Location              = point;
            cmb.Enabled               = true;
            cmb.Visible               = true;
            cmb.DropDownStyle         = ComboBoxStyle.DropDownList;
            cmb.Sorted                = false;
            cmb.SelectedIndexChanged += new EventHandler(cmbSelectedIndexChanged);
            // fill combobox
            foreach (FormMain.GroupsInfoItem item in combobox.m_vGroupsList)
            {
                cmb.Items.Add(item.m_name);
            }

            panelButtons.Controls.Add(cmb);

            // name combobox
            Label label = new Label();

            label.Text     = combobox.m_name + ":";
            label.Location = new Point(point.X - label.Size.Width - 5, point.Y + 2);
            label.Visible  = true;
            panelButtons.Controls.Add(label);
        }
Exemple #2
0
        // selection event on dynamic added Combobox
        private void cmbSelectedIndexChanged(object sender, EventArgs e)
        {
            // check selection on all comboboxes in panel
            bool bIsAllSelected = true;

            foreach (Control ctrl in panelButtons.Controls)
            {
                if (ctrl is ComboBox)
                {
                    ComboBox cmb = (ComboBox)ctrl;
                    bIsAllSelected = bIsAllSelected && (cmb.SelectedIndex != -1 || cmb.Items.Count == 0);
                }
            }

            // if all selected -> show neext buttons
            if (bIsAllSelected)
            {
                FormMain.ButtonInfo buttonInfo = null; // parent button for all comboboxes
                // add selected id (in all cmb) in current step
                foreach (Control ctrl in panelButtons.Controls)
                {
                    if (ctrl is ComboBox)
                    {
                        ComboBox cmb = (ComboBox)ctrl;
                        Dictionary <FormMain.ButtonInfo, FormMain.GroupsInfo> data = (Dictionary <FormMain.ButtonInfo, FormMain.GroupsInfo>)cmb.Tag;
                        // data contrain only one element
                        foreach (var pair in data)
                        {
                            buttonInfo = pair.Key;
                            FormMain.GroupsInfo groupInfo = pair.Value;
                            long groupInfoItemID          = -1;
                            if (groupInfo.m_vGroupsList.Count > 0 && cmb.SelectedIndex < groupInfo.m_vGroupsList.Count)
                            {
                                FormMain.GroupsInfoItem groupInfoItem = groupInfo.m_vGroupsList[cmb.SelectedIndex];
                                groupInfoItemID = groupInfoItem.m_id;
                            }

                            if (vButtonSteps.Count > 0)
                            {
                                vButtonSteps[vButtonSteps.Count - 1].m_vSelectedGroups.Add(groupInfo.m_id, groupInfoItemID);
                            }
                        }
                    }
                }
                // show next buttons
                bIsLastStep = true;
                if (buttonInfo != null)
                {
                    int i = 0;
                    List <FormMain.ButtonInfo> results = _Owner._Owner.m_vButtons.FindAll(
                        delegate(FormMain.ButtonInfo item)
                    {
                        return(item.m_pid == buttonInfo.m_id);
                    }
                        );
                    foreach (FormMain.ButtonInfo button in results)
                    {
                        ShowButton(button, i++);
                        bIsLastStep = false;
                    }
                }

                // if last step
                if (bIsLastStep)
                {
                    panelButtons.Controls.Clear();
                    btnSave.Enabled   = true;
                    textbox           = new System.Windows.Forms.TextBox();
                    textbox.Multiline = true;
                    textbox.Location  = new Point(5, 5);
                    textbox.Size      = new Size(panelButtons.Size.Width - 10, panelButtons.Size.Height - 10);
                    textbox.Visible   = true;
                    panelButtons.Controls.Add(textbox);
                }
            }
        }