单击复选框 nsis 时清除文本字段值
Clear text field value on click the checkbox nsis
我有可编辑的 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
将它们保存到一些临时变量中并恢复它们 if/when 用户取消选中该复选框。
我有可编辑的 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
将它们保存到一些临时变量中并恢复它们 if/when 用户取消选中该复选框。