在文本框中全选,除非再次单击.c#困惑
本文关键字:单击 困惑 文本 全选 | 更新日期: 2023-09-27 18:04:37
我想让它在我的程序中,如果你点击一个文本框,它会选择它。如果你再次点击它,它会全部取消选择。
我已经试过这样做了。
private void url_MouseDown(object sender, MouseEventArgs e)
{
url.ReadOnly = false;
url.SelectAll();
url.DeselectAll();
}
我知道url.DeselectAll();在错误的地方。任何帮助吗?提前感谢!
单击文本框本身会清除选中的内容,因此您必须这样做;
bool selected;
private void url_MouseDown(object sender, MouseEventArgs e)
{
url.ReadOnly = false;
if (!selected)
{
selected = true;
url.SelectAll();
}
else
{
selected = false;
url.DeselectAll();
}
}
当前代码首先调用
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
替换为检查当前状态是否被取消选择的东西
你的代码总是选择然后再取消选择,所以你的文本总是在鼠标下移后取消选择。
试试这个:
private void url_MouseDown(object sender, MouseEventArgs e)
{
url.ReadOnly = false;
if (url.SelectedText.Length < url.Text.Length) {
url.SelectAll();
} else {
url.DeselectAll();
}
}