2019年12月11日 星期三

[VB.NET] TreeView.NodeMouseClick 事件迴避 Collapse/Expand

Dot Net的TreeVie元件如果有開啟checkbox屬性,可以在Before/AfterCheck事件,利用e.Action處理類似的問題。

如果沒有開啟checkbox,一開始只找到在Before/After Collapse加入boolean變數,辨別是否正在執行展開/關閉TreeView動作,但是實測後與NodeMouseClick的觸發順序無法配合。

下面這個方法是可以運作的,也更好理解:
Dim hit As TreeViewHitTestInfo = TreeView1.HitTest(e.Location)
If hit.Location = TreeViewHitTestLocations.PlusMinus Then Return
如果點擊位置在TreeView元件的展開/關閉圖示,則退出Module執行。

2019年11月1日 星期五

[其他] Visual SourceSafe 出現 Error reading from file!

今天同事從Visual Studio簽入檔案時,出現UTF-8的警告訊息,他選擇忽略以後,Visual SourceSafe中的檔案就毀損了,也無法刪除,點目錄就會出現「Error reading from file!」錯誤訊息。

到Visual SourceSafe的安裝目錄中可以找到analyze.exe執行檔,然後用cmd執行以下指令:
analyze -f <VSS DATA FOLDER PATH>
<VSS DATA FOLDER PATH>是Visual SourceSafe檔案儲存路徑下一個名為data的目錄。舉例,我的VSS Database路徑為D:\VSSDB,底下就會有名為data的目錄。指令就是:
analyze -f D:\VSSDB\data
之後analyze.exe就會開始對毀損除錯,至於檔案救不救得回來無法保證,但至少Error reading from file!的訊息沒有再出現。

在執行時有碰到兩種情況:
  1. 執行前,正在登入Visual SourceSafte的使用者都要離開,不然無法執行。
  2. 每次執行analyze.exe後會在data\backup中建立analyze檔案(應該是log檔,有點忘記),如果要執行第二次,必須把這個檔案刪掉才能執行。

2019年9月4日 星期三

2019年8月19日 星期一

[cmd] 在cmd中同時使用多個指令

指令1 || 指令2 || 指令3 || .....
前面的指令失敗後,才執行後面的指令。

指令1 && 指令2 && 指令3 && .....
前面的指令成功後,才執行後面的指令。

指令1 & 指令2 & 指令3 & .....
無論前面的指令成功或失敗,皆執行後面的指令。

[VB.NET] 透過 Process 開啟、關閉外部程式

由於沒找到System.Diagnostics.Process有提供使用程式別名的方法,只能改用Cmd去做,此段Code只能留作紀念。