/// <summary>
 /// 检查按钮状态
 /// </summary>
 /// <param name="page">当前Page</param>
 private void CheckButtonState(XtraTabPage page)
 {
     if (page != null)
     {
         if (ReadOnly)
         {
             btnSave.Enabled = false;
         }
         tmo_questionnaire_category qc = controlData.TabPages[page];
         if (xtraTabControlMain.TabPages.Count == 1) //只有一个
         {
             btnPrevious.Enabled = false;
             btnNext.Enabled     = true;
             btnNext.Text        = "提交问卷";
             if (ReadOnly)
             {
                 btnNext.Enabled = false;            //只读模式
             }
         }
         if (xtraTabControlMain.TabPages.Count > 1)
         {
             if (controlData != null)
             {
                 if (qc.Index == 1)    //第一页
                 {
                     btnPrevious.Enabled = false;
                     btnNext.Enabled     = true;
                     btnNext.Text        = "下一页";
                     btnNext.Tag         = controlData.TabPages.First(x => x.Value.Index == qc.Index + 1).Key;
                 }
                 else if (qc.Index == xtraTabControlMain.TabPages.Count) //最后一页
                 {
                     btnPrevious.Enabled = true;
                     btnPrevious.Tag     = controlData.TabPages.First(x => x.Value.Index == qc.Index - 1).Key;
                     btnNext.Enabled     = true;
                     btnNext.Text        = "提交问卷";
                     btnNext.Tag         = null;
                     if (ReadOnly)
                     {
                         btnNext.Enabled = false;            //只读模式
                     }
                 }
                 else
                 {
                     btnPrevious.Enabled = true;
                     btnPrevious.Tag     = controlData.TabPages.First(x => x.Value.Index == qc.Index - 1).Key;
                     btnNext.Enabled     = true;
                     btnNext.Text        = "下一页";
                     btnNext.Tag         = controlData.TabPages.First(x => x.Value.Index == qc.Index + 1).Key;
                 }
             }
         }
     }
     else
     {
         btnNext.Enabled = btnPrevious.Enabled = false;
     }
 }
        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();     //初始化验证
            }
        }