首页 > 开发 > 综合 > 正文

用C#去除代码的SourceSafe管理(续篇)

2024-07-21 02:19:24
字体:
来源:转载
供稿:网友
用c#去除代码的sourcesafe管理(续篇)

作者:秋枫


三、测试使用

程序测试运行界面,


界面部分代码大多数由设计器生成,下面列出了主要添加代码,

//委托,更新文本框

private delegate void appendtexthandler(string content);

//标记转换操作是否完成

private int convertok =0;

private system.windows.forms.textbox textboxfolder;//路径文本框

private system.windows.forms.button buttonfolder;//浏览按钮

private system.windows.forms.textbox textboxinfo;//信息显示框

private system.windows.forms.button buttonok;//运行按钮

private system.windows.forms.button buttoncancel;//退出按钮

按钮处理函数用来打开一个路径选择框,

private void buttonfolder_click(object sender, system.eventargs e)

{

folderbrowserdialog mydialog = new folderbrowserdialog();

mydialog.shownewfolderbutton = false;

mydialog.description = "选择需要处理的解决方案或项目目录";

if(mydialog.showdialog()==dialogresult.ok)

this.textboxfolder.text = mydialog.selectedpath;

mydialog.dispose();

}

运行函数,在这里面实例化vssconverter类,并调用了removevss方法,运行时把几个按钮禁了,里面注册了两个事件,起信息传递作用,不过对于直接在地址栏中输入非法路径没有做具体判断,

private void buttonok_click(object sender, system.eventargs e)

{

if(this.textboxfolder.text.length>1)

{

this.textboxinfo.clear();

this.convertok = 0;

this.buttonok.enabled = false;

this.buttonfolder.enabled = false;

this.buttoncancel.enabled = false;

this.textboxfolder.enabled = false;

vssconverter vssconverter = new vssconverter(this.textboxfolder.text);

vssconverter.operatenotify += new operatenotifyhandler(vssconverter_operatenotify);

vssconverter.threadcompleted += new eventhandler(vssconverter_threadcompleted);

vssconverter.removevss();

}

else

messagebox.show("请输入解决方案或项目路径!");

}

下面是两个事件处理函数,第一个是用来在前台即时显示当前处理的文件信息,第二个函数是用来通知线程的执行结果。函数如下,

// 信息通知

private void vssconverter_operatenotify(object sender, vsseventargs e)

{

appendtexthandler ath = new appendtexthandler(this.textboxinfo.appendtext);

this.textboxinfo.begininvoke(ath,new object[]{e.message+environment.newline});

}

// 线程结束通知

private void vssconverter_threadcompleted(object sender, eventargs e)

{

if(this.convertok==0)

this.convertok++;

else

{

this.buttonok.enabled = true;

this.buttonfolder.enabled = true;

this.buttoncancel.enabled = true;

this.textboxfolder.enabled = true;

this.textboxinfo.appendtext("#### 转换完成 ####");

}

}

总结,程序通过搜索指定目录下的文件,根据扩展名进行相应的操作来完成处理,其中为了加快运行速度增加了线程来处理。欢迎大家交流,我的邮件地址[email protected] csdn技术论坛。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表