//验证控件值 public static bool Validate(XtraTabPage tabPage) { if (tabPage == null) { return(false); } List <Control> childrens = TmoComm.GetChildrenControl(tabPage, true); foreach (Control children in childrens) { if (children is UCQuestion) { UCQuestion ucq = (UCQuestion)children; if (ucq.Enabled && !ucq.ValidateValue()) { //ucq._valueControls.ForEach(x => x.Focus()); ucq.Focus(); tabPage.Select(); return(false); } } } return(true); }
/// <summary> /// 获取结果从控件 /// </summary> /// <param name="ctrl"></param> /// <returns></returns> private List <tmo_questionnaire_result> GetResultFormControl(Control ctrl) { List <tmo_questionnaire_result> list = new List <tmo_questionnaire_result>(); if (ctrl == null) { return(list); } if (ctrl is UCQuestion) { UCQuestion ucQuestion = (UCQuestion)ctrl; ucQuestion.SaveValue(); list.Add(ucQuestion.Question.QuestionnaireResult); } if (ctrl.HasChildren) { foreach (Control crl in ctrl.Controls) { list.AddRange(GetResultFormControl(crl)); } } return(list); }
public void Init(List <tmo_questionnaire_category> qclist) { if (qclist != null && qclist.Count > 0) { var tabs = qclist.Where(x => x.qc_level == 1).ToList(); tabs.Sort(); for (int i = 0; i < tabs.Count; i++) { tmo_questionnaire_category qc = tabs[i]; qc.Index = i + 1; XtraTabPage page = new XtraTabPage(); page.Name = qc.qc_id; page.Text = qc.qc_name; FlowLayoutPanel flp = new FlowLayoutPanel(); flp.AutoScroll = true; flp.Dock = DockStyle.Fill; flp.FlowDirection = FlowDirection.TopDown; flp.WrapContents = false; page.Controls.Add(flp); var groupboxs = qclist.Where(x => x.qc_pid == qc.qc_id).ToList(); groupboxs.Sort(); foreach (tmo_questionnaire_category qcgroup in groupboxs) { GroupBox gb = new GroupBox(); gb.AutoSize = false; gb.Name = qcgroup.qc_id; gb.Text = qcgroup.qc_name; gb.Margin = new Padding(10, 5, 0, 5); gb.Padding = new Padding(0, 0, 0, 5); FlowLayoutPanel flpgroup = new FlowLayoutPanel(); //flpgroup.Margin = new Padding(0); flpgroup.Padding = new Padding(3); flpgroup.Dock = DockStyle.Fill; flpgroup.FlowDirection = FlowDirection.TopDown; flpgroup.WrapContents = false; gb.Controls.Add(flpgroup); if (qcgroup.Questions != null && qcgroup.Questions.Any()) { int h = 20; qcgroup.Questions.Sort(); qcgroup.Questions.ForEach(x => { if (_status == null) { _status = x.QuestionnaireResult.Userstatus; } UCQuestion ucQuestion = new UCQuestion(x); //ucQuestion.Margin = new Padding(3); h += ucQuestion.Height + 6; flpgroup.Controls.Add(ucQuestion); QuestionList.Add(ucQuestion); }); gb.ClientSize = new Size(857, h); } flp.Controls.Add(gb); } TabPages.Add(page, qc); } InitValidate(); //初始化验证 } }