用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技術論壇。