public static void setProgressBar(Form form, ProgressBar pbr) { if (pbr.InvokeRequired) { setProgressDelegate pbRunner = new setProgressDelegate(setProgressBar); form.Invoke(pbRunner, new object[] { form, pbr }); } else { pbr.Refresh(); pbr.Value += 1; } }
/// <summary> /// 绘制处理的主代码 /// </summary> /// <param name="objPath"></param> private void doDraw(object objPath) { setProgressDelegate setProg = new setProgressDelegate(setProgress); setNodeTextDelegate setNode = new setNodeTextDelegate(setNodeText); string path = objPath as string; this.progressPanel1.Invoke(setProg, true); //this.progressPanel1.Visible = true; CFileHelper fileHelper = new CFileHelper(); //获取及分析所有C代码文件 List <CType> cTypeList = fileHelper.GetAllCFile(path); //treeGX.Node节点用style ElementStyle style = new ElementStyle(); //节点文字颜色设置 style.TextColor = Color.Blue; for (int i = 0; i < cTypeList.Count; i++) { CType item = cTypeList[i]; if (string.IsNullOrWhiteSpace(textBox1.Text)) { //以“.c”文件为绘制主体,分析并递归绘制其中的include关系 if (Path.GetExtension(item.FullPath).ToLower() == ".c") { Console.WriteLine(DateTime.Now.ToString() + "\t" + item.FullPath); Node cNode = creatNode(item.FileName, ref this.node1); loopDraw(cTypeList, item.FileName, ref cNode); } } else { if (item.FileName == textBox1.Text) { Console.WriteLine(DateTime.Now.ToString() + "\t" + item.FullPath); Node cNode = creatNode(item.FileName, ref this.node1); loopDraw(cTypeList, item.FileName, ref cNode); } } } this.treeGX1.Invoke(setNode, path); this.progressPanel1.Invoke(setProg, false); }