我有可编辑的TextField。但是,当用户单击复选框时,我需要禁用TextField并清除textfield的值。我禁用了该字段,但无法清除TextField值。因此,请让我知道如何执行此操作。
注意:清除值表示TextField是否具有任何值,则应在单击该复选框时将其留为空白。
代码 :
${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
您可以使用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
它们更改为一些临时变量,如果/当用户取消选中复选框时,可以将其恢复。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句