我有可编辑的TextField。 但是当用户单击Checkbox时,我需要禁用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
答案 0 :(得分: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
将它们转换为某些临时变量,并在用户取消选中该复选框时将其恢复。