使文本框仅在第一次单击时突出显示文本

时间:2016-01-09 23:30:03

标签: c# text

目前我已经拥有它,所以当你选择文本框时它会突出显示它中的文本,但我想要它做的只是第一次选择它时这样做它不会删除文本用户每次都在键入。以下是我用来突出显示文字的内容:

private void txtName_Focus(object sender, EventArgs e)
    {
        bool isFirstTime = true;
        if (isFirstTime == true){
        txtName.SelectionStart = 0;
        txtName.SelectionLength = txtName.Text.Length;

        }
        isFirstTime = false;


    }

2 个答案:

答案 0 :(得分:4)

bool isFirstTime = true;这是你的问题。每次调用焦点事件时,它都会初始化为true 。移动bool isFirstTime;成为您班级的成员,并在声明,构造函数或表单加载事件中将其初始化为true 一次

答案 1 :(得分:3)

也许是这样的:

bool txtNameWasFocused=false;
private void txtName_Focus(object sender, EventArgs e)
{
    if(!txtNameWasFocused){
        txtNameWasFocused=true;
        txtName.SelectionStart = 0;
        txtName.SelectionLength = txtName.Text.Length;
    }
}

如果你在很多地方需要这个,你可能会想到一个带有这种特殊行为的派生文本框......