private Control createTextBoxDropDown(Question q) { int innerPanelLength = 0; FlowLayoutPanel pnlInner = new FlowLayoutPanel(); pnlInner.FlowDirection = FlowDirection.LeftToRight; pnlInner.Width = 120; //pnl.BackColor = System.Drawing.Color.Green; Label lbl = this.createLabel(q.GetQuestionLabel()); pnlInner.Controls.Add(lbl); innerPanelLength += lbl.Width + 6; TextBoxDropDown txt = new TextBoxDropDown(); txt.Enabled = false; txt.Name = q.GetQuestionName(); txt.DropDownControl = this.getDropDownControl(q); txt.ButtonDropDown.Text = "..."; txt.ButtonDropDown.Visible = true; txt.Width = 150; txt.Height = 20; txt.TextAlign = HorizontalAlignment.Left; txt.Tag = q; txt.TextChanged += new EventHandler(txt_TextChanged); txt.ButtonDropDownClick += new System.ComponentModel.CancelEventHandler(txt_ButtonDropDownClick); //調整寬度 pnlInner.Width = innerPanelLength + txt.Width + 6; if (!string.IsNullOrEmpty(q.GetWidth())) { if (q.GetWidth().ToUpper() == "FILL") { pnlInner.Width = this.contentPanel.Width - 12; txt.Width = pnlInner.Width - innerPanelLength - 12; } else { int width = 0; bool isnum = int.TryParse(q.GetWidth(), out width); if (isnum) { txt.Width = width; pnlInner.Width = innerPanelLength + txt.Width + 6; } } } //txt.Text = q.GetQuestionName(); pnlInner.Controls.Add(txt); this.allQControls.Add(txt.Name, txt); //pnlInner.Width = innerPanelLength + txt.Width + 6; pnlInner.Height = txt.Height + 6; //adjust height int periodCount = 4; this.contentPanel.Height = 6 + 20 * ((this.questionGroup.GetQuestions().Count % periodCount == 0) ? (this.questionGroup.GetQuestions().Count / periodCount + 1) : (this.questionGroup.GetListItems().Count / periodCount + 2)); this.pnlQGroup.Height = this.contentPanel.Height + 6; return pnlInner; }
private Control createTextArea(Question q) { int innerPanelLength = 0; FlowLayoutPanel pnlInner = new FlowLayoutPanel(); pnlInner.FlowDirection = FlowDirection.LeftToRight; pnlInner.Width = 120; //pnl.BackColor = System.Drawing.Color.Green; Label lbl = this.createLabel(q.GetQuestionLabel()); pnlInner.Controls.Add(lbl); innerPanelLength += lbl.Width + 6; if (string.IsNullOrEmpty(q.GetQuestionLabel())) lbl.Height = 0; TextBox txt = new TextBox(); txt.Enabled = false; txt.Name = q.GetQuestionName(); txt.Multiline = true; txt.Width = pnlInner.Width - 6; txt.Height = q.GetRows() * 20; txt.TextAlign = HorizontalAlignment.Left; txt.ScrollBars = ScrollBars.Vertical; txt.Tag = q; txt.TextChanged += new EventHandler(txt_TextChanged); //調整寬度 , the default width of textarea is FILL pnlInner.Width = this.contentPanel.Width - 6; txt.Width = pnlInner.Width - 6; if (!string.IsNullOrEmpty(q.GetWidth())) { if (q.GetWidth().ToUpper() != "FILL") { int width = 0; bool isnum = int.TryParse(q.GetWidth(), out width); if (isnum) txt.Width = width; } } //txt.Text = q.GetQuestionName(); pnlInner.Controls.Add(txt); this.allQControls.Add(txt.Name, txt); //pnlInner.Width = this.contentPanel.Width - 6; pnlInner.Height = txt.Height + lbl.Height + 10; //adjust height this.contentPanel.Height = pnlInner.Height + 6; this.pnlQGroup.Height = this.contentPanel.Height + 6; return pnlInner; }