2012-03-21 16 views
0

我的字符串比較does not work.I嘗試比較,等於,=和所有這些方法不起作用。 這裏是我的代碼:字符串比較不起作用在VB.NET

Dim activeChild2 = Me.ActiveMdiChild 
    If TypeOf activeChild2 Is Window Then 
     Dim activeChild As Window = Me.ActiveMdiChild 
     If (Not activeChild Is Nothing) Then 
      If activeChild.CTR_User.ToString = activeChild.User_name.ToString Then 
       Call activeChild.Edition() 

       Select Case Trim$(UCase(activeChild.Name)) 
        Case "FRM_MISSION" 
         'treatment 
        Case "FRM_TACHE" 
         'treatment 

       End Select 
      Else 
       MsgBox("Error modification!!!!", MsgBoxStyle.Critical) 
      End If 
     End If 
    End If 

的問題是如果activeChild.CTR_User.ToString = activeChild.User_name.ToString然後不顧。在具有相同的字符串TOTO的= TOTO代碼始終閃光的其他條款,讓我看看msgbox

Regards

+0

如果'activeChild.CTRL_User'和'activeChild.User_name'是這兩個字符串,那麼你就不需要使用'ToString'來做比較。如果它們不是字符串,'ToString'的結果幾乎總是不匹配。 – 2012-03-21 08:24:28

+0

是的,你是對的,那麼比較一個對象和一個字符串的解決方案是什麼? CTR_user是一個對象,user_name是一個字符串 – YosrJ 2012-03-21 09:00:25

回答

1

你爲什麼要調用.ToString?是activeChild.CTR_User和activeChild.User_name字符串,還是他們試圖比較的對象?

如果它們是對象,則無法將它們與.ToString()進行比較,因爲它會不準確。你應該使用類似activeChild.CTR_User.Equals(activeChild.User_name)activeChild.CTR_User is activeChild.User_name。除非我知道你使用的是什麼類型,否則我無法給你具體的細節。

您是否嘗試過在其上放置斷點並在Visual Studio的許多調試工具中手動檢查值?

+0

非常感謝您的回答,它幫助我找出問題所在。 事實上,CTR_user是一個對象(我將影響處理中的文本框)並且user_name是一個字符串,因此無法比較它們的值? 我手動調試,我發現在兩個變量(「管理」=「管理」)相同的值例如 – YosrJ 2012-03-21 08:57:40

+0

沒問題,很高興成爲幫助:) – Spikeh 2012-03-21 09:06:45

0

嘗試,而不是=操作者使用

例如: 如果activeChild.CTR_User.ToString像activeChild.User_name.ToString