0

我正在尝试在我的程序中制作它,如果您单击文本框,它将全部选中。然后,如果您再次单击它,它将全部取消选择。

我试过让它像这样..

 private void url_MouseDown(object sender, MouseEventArgs e)
    {
        url.ReadOnly = false;
        url.SelectAll();
        url.DeselectAll();

    }

我知道 url.DeselectAll(); 在错误的位置。有什么帮助吗?提前致谢!

4

3 回答 3

0

您的代码总是选择然后再次取消选择,因此在鼠标按下后您的文本将始终被取消选择。

试试这个:

private void url_MouseDown(object sender, MouseEventArgs e)
{
    url.ReadOnly = false;
    if (url.SelectedText.Length < url.Text.Length) {
        url.SelectAll();
    } else {
        url.DeselectAll();
    }
}
于 2013-03-19T21:39:23.673 回答
0

您当前的代码首先调用

url.SelectAll();

然后立即调用

url.DeselectAll();

相反,请检查您尝试切换的项目的当前状态。我不清楚这个问题到底是什么,所以在伪代码中:

private bool isSelected = false;

private void url_MouseDown(object sender, MouseEventArgs e)
{
    url.ReadOnly = false;
    if (isSelected)
    {
        url.DeselectAll();
    } 
    else 
    {
        url.SelectAll();
    }
    isSelected = !isSelected;
}

替换IsDeselected为检查当前状态是否被取消选择的内容。

于 2013-03-19T16:22:52.680 回答
0

单击文本框本身会清除选择,因此您必须执行以下操作;

    bool selected;
    private void url_MouseDown(object sender, MouseEventArgs e)
    {
        url.ReadOnly = false;
        if (!selected)
        {
            selected = true;
            url.SelectAll();
        }

        else
        {
            selected = false;
            url.DeselectAll();
        }
    }
于 2013-03-19T16:37:27.527 回答