c# - 单击按钮后关注文本框

标签 c# winforms textbox

好的。因此,对于我的大学类(class),我必须使用 Windows 窗体在 C# 中制作一个简单的计算器(使用 .Split() 制作要求更高的版本)。有一个 textBox 和几个 buttons。所以 f.e.我将数字 3 插入到 textBox 中,但随后我想按下一个 button,它会在我的数字后添加一个 + 符号。是的,它做到了。但是,如果我想返回到我的 textBox 中写入内容,我必须再次单击 in。

现在我找到了诸如使用 .Focus() 或使用 .Select() 之类的答案,它们可以工作,但不像我希望的那样,因为他们还标记了整个 textBox.text,就像您用鼠标选择它一样,颜色为蓝色,如果我按另一个数字,我会从 textBox 中删除所有内容。有没有办法在不标记整个文本的情况下做到这一点?

最佳答案

而不是仅仅使用 .Focus() 去这个组合:

// Set focus to control
txtbox.Focus();
// Set text-selection to end
txtbox.SelectionStart = txtbox.Text.Length == 0 ? 0 : txtbox.Text.Length -1;
// Set text-selection length (in your case 0 = no blue text)
txtbox.SelectionLength = 0

// Set focus to control
txtbox.Focus();

// Check if text is longer then 0
if(txtbox.Text.Length > 0)
{
    // Set text-selection to end
    txtbox.SelectionStart = txtbox.Text.Length -1;
    // Set text-selection length (in your case 0 = no blue text)
    txtbox.SelectionLength = 0
}

两种方式都是一样的。在第一个中,我检查了第二行中的 text-length == 0

在第二个中,我使用了经典的 if 语句。

关于c# - 单击按钮后关注文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36464431/

相关文章:

javascript - 文本框的 onchange 文本显示在另一个文本框上

java - 我想在文本字段中输入 1 到 15 之间的数字

c# - 使用正则表达式和清理字符串内存?

c# - C#应用程序启动时显示多个窗体

c# - Telerik Winforms 主题标题栏不显示

c# - 控制从数据 GridView 中删除项目的执行速度

c# - 编码包含字符串的结构

c# - RuntimeTypeModel.Add方法中的 "applyDefaultBehaviour"有什么作用?

c# - 记录所有在 Windows 中关闭的 Windows

vba - 按下回车键后继续关注文本框