程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 用C#去除代碼的SourceSafe管理(續篇)

用C#去除代碼的SourceSafe管理(續篇)

編輯:關於C語言
用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("#### 轉換完成 ####");

}

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved