none
關於使用者控制項 VB2013 RRS feed

  • 問題

  • 小弟設計一個TEXTBOX跟COMBOBOX的組合項目

    但是放進主程式之後

    只要動到FORM就會影響設定。他就會說我的控制項未定義

    然後再修正後存檔,在動到畫面  一樣又會說未定義

    他未定義的訊息其實就是Global這個字不見了。

     Me.InputUserControl31 = New Global.PCBA2.InputUserControl()
            Me.InputUserControl32 = New PCBA2.InputUserControl()
            Me.InputUserControl33 = New PCBA2.InputUserControl()
            Me.InputUserControl34 = New PCBA2.InputUserControl()
            Me.InputUserControl35 = New PCBA2.InputUserControl()
            Me.InputUserControl36 = New PCBA2.InputUserControl()
            Me.InputUserControl37 = New PCBA2.InputUserControl()
            Me.InputUserControl38 = New PCBA2.InputUserControl()
            Me.InputUserControl39 = New PCBA2.InputUserControl()
    • 已編輯 VBenson 2017年6月30日 上午 07:56
    2017年6月30日 上午 07:55

解答

  • VBenson:

    VB.NET中一個模塊中如果設置為公共變量,不建議用Global關鍵字(這個字已經過期,是為兼容性保留的,應該用Public)。

    Module MyModule
    
    Public i As Integer = 0    '可以在任何地方被使用,全局共享的變量。
    
    End Module

    如果您的類的類名和系統類衝突,應該用Global.類名.方法名(參數……).

    請具體參考:

    Global Keyword

    The Global keyword makes the root, or empty, namespace at the top of the namespace hierarchy accessible. In the past, you could not define a System.IO namespace within your company's namespace hierarchy:
    Namespace MyCompany.System.IO

    Doing so would mess up all references to the framework's System namespace within your application. You can now use the Global keyword to disambiguate the namespaces:
    Dim myFile As Global.System.IO.File

    The Global keyword is especially useful in code generation scenarios where you want to be absolutely sure that generated namespace references point to what you intend. I expect that you'll see Visual Basic itself use theGlobal keyword in all generated code.


    ASP.NET Forum
    StackOverFlow
    FreeRice Donate
    Issues to report



    2017年7月15日 上午 08:07

所有回覆

  • 有考慮把 PCBA2 這個 .vbproj 加入到你目前的 .sln 一起除錯嗎?

    請說明如何參照你 pcba2 的 dll


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2017年7月1日 上午 09:58
  • 心大您好

    我是用加入專案裡面的加入使用者測試項

    然後建好之後有一起買除錯

    但是就是發生上述問題

    2017年7月3日 上午 09:59
  • 你如果加入 dll 專案,你原先參照靜態 dll 需要移除。

    原則上你不需要使用 Global 關鍵字,若要使用,全路徑不可以錯誤,可參照物件管理員確認完整物件路徑。


    T.L. Cheng

    2017年7月15日 上午 04:37
    版主
  • VBenson:

    VB.NET中一個模塊中如果設置為公共變量,不建議用Global關鍵字(這個字已經過期,是為兼容性保留的,應該用Public)。

    Module MyModule
    
    Public i As Integer = 0    '可以在任何地方被使用,全局共享的變量。
    
    End Module

    如果您的類的類名和系統類衝突,應該用Global.類名.方法名(參數……).

    請具體參考:

    Global Keyword

    The Global keyword makes the root, or empty, namespace at the top of the namespace hierarchy accessible. In the past, you could not define a System.IO namespace within your company's namespace hierarchy:
    Namespace MyCompany.System.IO

    Doing so would mess up all references to the framework's System namespace within your application. You can now use the Global keyword to disambiguate the namespaces:
    Dim myFile As Global.System.IO.File

    The Global keyword is especially useful in code generation scenarios where you want to be absolutely sure that generated namespace references point to what you intend. I expect that you'll see Visual Basic itself use theGlobal keyword in all generated code.


    ASP.NET Forum
    StackOverFlow
    FreeRice Donate
    Issues to report



    2017年7月15日 上午 08:07