2015-01-08 143 views
0

清除文本字段值我有可編輯的TextField。 但是當用戶點擊複選框時,我需要禁用TextField並清除textfield的值。我禁用了該字段,但無法清除TextField值。所以請讓我知道如何做到這一點。單擊複選框nsis

注:清除值意味着如果TextField有任何值,那麼它應該是空白onClick複選框。

代碼:

 ${NSD_CreateText} 50u 67u 200u 12u "" 
     Pop $txtUsername 
     ${NSD_SetText} $txtUsername $Text_txtUsername 

     ${NSD_CreatePassword} 50u 80u 200u 12u "" 
     Pop $pwdPassword 
     ${NSD_SetText} $pwdPassword $Text_pwdPassword 

     ${NSD_CreateCheckbox} 0 96u 100% 12u "&Use Windows Login (Domain account must have 'log on as a service' right.)" 
     Pop $chkCheckbox 
     ${NSD_OnClick} $chkCheckbox EnDisableWindowsLoginButton 

Function EnDisableWindowsLoginButton 
    Pop $chkCheckbox 
    ${NSD_GetState} $chkCheckbox $sqlLogin 
    ${If} $sqlLogin == 1 
     EnableWindow $txtUsername 0 
     EnableWindow $pwdPassword 0 
    ${Else} 
     EnableWindow $txtUsername 1 
     EnableWindow $pwdPassword 1 
    ${EndIf} 

FunctionEnd 
+0

向我們展示你的嘗試,所以我們可以告訴你什麼是錯的。 – Seki

回答

0

您可以設置NSD_SetText一個文本框的值。確實,它看起來像你已經在使用它來初始化這些字段。嘗試是這樣的:

Function EnDisableWindowsLoginButton 
    Pop $chkCheckbox 
    ${NSD_GetState} $chkCheckbox $sqlLogin 
    ${If} $sqlLogin == 1 
     ${NSD_SetText} $txtUsername "" 
     ${NSD_SetText} $pwdPassword "" 
     EnableWindow $txtUsername 0 
     EnableWindow $pwdPassword 0 
    ${Else} 
     EnableWindow $txtUsername 1 
     EnableWindow $pwdPassword 1 
    ${EndIf} 
FunctionEnd 

如果你不想失去由用戶輸入的值,可以將它們StrCpy一些臨時變量,如果/當用戶取消選中該複選框恢復它們。

+0

感謝弗朗西斯科。它工作正常。 – user3337109