[英]Replacing form controls in vb6
我們有一個內部按鈕控制,坦白說它很糟糕。 我想替換它,但我不想在我們的項目中使用每個表單並刪除/添加新控件。 在我看來,如果我設計一個新的按鈕,它具有與舊的相同的屬性,那么我應該能夠給它與舊的相同的名稱,只需將vbp文件中的所有參考行替換為點到新的控制。
有沒有人試過這個(更好的是你聽說過一個能為你做的工具)如果是這樣的話,我應該注意什么?
謝謝!
* .vbp文件是您需要更改的位置。 在包含GUI的文件中也引用了所使用的控件庫 - 即形式(* .frm),控件(* .ctl)和屬性頁(* .pag)文件。 這些文件采用純文本格式,您可以在頂部看到引用。 它們看起來像這樣:
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx"
如果新控件是已編譯的OCX,則需要在所有相關文件中添加或更新這些引用。 如果它在同一個項目中我不認為它需要任何參考,如果它在同一個項目組中的另一個項目中,我不確定。 使用新控件保存測試表單以查看。
請注意,您不必保持相同的控件類名稱。 在* .frm / ctl / pag文件中,它們上的各個控件的實例由一個簡單的格式表示,如下所示:
Begin VB.CommandButton Command2
Caption = "Cancel"
Height = 375
Left = 2460
TabIndex = 1
Top = 2400
Width = 1455
End
第一行的語法是“Begin LibraryOrProjectName.ClassName NameOfThisInstance”。 因此,如果違規控件的名稱與眾不同,則應該很容易在BASIC源和GUI布局中搜索和替換對它的引用。 您可能需要一個純文本編輯器,可以跨多個文件執行搜索和替換(Notepad ++是一個)。
某些控件屬性存儲如下:
Picture = "frmMain.frx":292F
這些文件對應於* .frx,* .ctx和* .pgx文件,這些文件包含某些控件屬性值的二進制數據。 我不認為這些文件需要改變或導致任何問題。 它們似乎不包含控件名稱。
使用完整編譯(Ctrl + F5)以確保之后在源的部分中沒有問題。
沒試過。 祝好運。
在接受的答案中只添加了一個提示。
如果您需要使用第三方或自定義ActiveX控件替換任何通用 VB控件,則必須替換:
BeginProperty Font
同
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
在嘗試編輯/打開表單時,忽略運行時錯誤713會導致這樣做。
如果塊中沒有BeginProperty語句,則控件使用默認字體,並且不需要此替換。
要查找的另一個方案是OCX中的類是否直接在代碼中引用。
換句話說,如果控件類是ABCButton
那么你需要在所有.BAS
和.CLS
文件中查找ABCButton
,並進行適當的更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.