/// <summary> /// 给当前的TabControl添加一页TagPage,并在其上设置一个控件 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="pageName"></param> /// <param name="elementList">控件所在的列表</param> /// <param name="InitDelegate">初始化控件的委托</param> /// <param name="delegateParam">委托使用的参数</param> protected void AddTabPage <T>(string pageName, List <T> elementList, InitElement <T> InitDelegate, object delegateParam) where T : System.Windows.Forms.Control, new() { //判断添加元素类型是否为指定类型 if (typeof(T) != typeof(ListView) && typeof(T) != typeof(DataGridView)) { MessageBox.Show("AddtabPage:指定的元素不在规定范围内.(规定:ListView,DataGridView)"); return; } TabPage tp = new TabPage(); T element = new T(); this.tabControl1.SuspendLayout(); this.tabControl1.Controls.Add(tp); tp.Controls.Add(element); //初始化该TabPage tp.Location = new System.Drawing.Point(4, 22); tp.Padding = new System.Windows.Forms.Padding(0); tp.Size = new System.Drawing.Size(608, 287); tp.Text = pageName; tp.UseVisualStyleBackColor = true; //初始化TabPage的DataGridView InitDelegate(element, delegateParam); elementList.Add(element); this.tabControl1.ResumeLayout(); }
/// <summary> /// Handles the AST node visit. /// </summary> /// <param name="astNode">AST node.</param> public override void Visit(EqualsOpInitElemAstNode astNode) { var numericFunction = MasterExporter.ToBasicNumericFunctionTerm(astNode.Term1); var numberAstNode = astNode.Term2 as NumberTermAstNode; if (numericFunction != null && numberAstNode != null) { InitElementData = new EqualsNumericFunctionInitElement(numericFunction, numberAstNode.Number); return; } var objectFunction = MasterExporter.ToBasicObjectFunctionTerm(astNode.Term1); var term2IdentifierAstNode = astNode.Term2 as IdentifierTermAstNode; if (objectFunction != null && term2IdentifierAstNode != null) { InitElementData = new EqualsObjectFunctionInitElement(objectFunction, MasterExporter.ToConstantTerm(term2IdentifierAstNode)); return; } var term1IdentifierAstNode = astNode.Term1 as IdentifierTermAstNode; if (term1IdentifierAstNode != null && term2IdentifierAstNode != null) { InitElementData = new EqualsInitElement(MasterExporter.ToConstantTerm(astNode.Term1), MasterExporter.ToConstantTerm(astNode.Term2)); } }
/// <summary> /// Handles the AST node visit. /// </summary> /// <param name="astNode">AST node.</param> public override void Visit(PredicateInitElemAstNode astNode) { var predicate = new PredicateInitElement(astNode.Name); astNode.Terms.ForEach(term => predicate.Terms.Add(new ConstantTerm(term))); InitElementData = predicate; }
/// <summary> /// Handles the AST node visit. /// </summary> /// <param name="astNode">AST node.</param> public override void Visit(AtInitElemAstNode astNode) { InitElementData = new AtInitElement(astNode.Number, (LiteralInitElement)MasterExporter.ToInitElement(astNode.Argument)); }
/// <summary> /// Handles the AST node visit. /// </summary> /// <param name="astNode">AST node.</param> public override void Visit(NotInitElemAstNode astNode) { InitElementData = new NotInitElement((AtomicFormulaInitElement)MasterExporter.ToInitElement(astNode.Argument)); }