我是 C# 新手,我尝试从基础知识开始学习,但我坚持上课。我做了第一个例子来练习,它工作正常,但是当我添加一点复杂性时,我收到错误:
“‘iArcher’这个名字在当前上下文中不存在。”
请帮助解释问题所在并提出正确(且简单)的解决方案。
谢谢!
using System;
namespace Units
{
class Archer
{
public int id;
public int hp;
public float speed;
public float attack;
public float defence;
public float range;
public void setProp(int id, int hp, float sp, float at, float de, float ra)
{
this.id = id;
this.hp = hp;
speed = sp;
attack = at;
defence = de;
range = ra;
}
public string getProp()
{
string str = "ID = " + id + "\n" …Run Code Online (Sandbox Code Playgroud) 我尝试模仿用户单击用户名字段(例如)时的行为,并且将自动选择所有文本(名称),以便更轻松地用新文本替换它。但是,当用户再次单击该字段时,文本/名称将变为未选中状态,因此用户可以继续从光标写入文本。我确信每个人都知道我想描述什么,因为当我们在文本字段中写入或想要修改其内容时,我们都多次遇到过这种情况......
所以问题是当我使用 Enter focus 事件并应用 SelectAll() 时,根本不起作用!文本仍未选择。我也尝试使用 Click 事件,效果很好,但是第二次单击时遇到了困难,因为所有鼠标单击再次运行 SelectAll() 方法,文本始终仍然处于选中状态。也许我可以使用存储选择状态的全局变量文本和更改状态反之亦然,但如果没有必要,我不想使用任何额外的变量(每个变量都用于所有 TextBox...不)。
应该有一个简单而优雅的解决方案,因为许多应用程序和网站都使用这种行为来使用户的生活更轻松。我阅读了一些论坛并找到了一些解决方案,但它们看起来比我希望的更复杂。
这是我的代码的相关部分......没什么特别的!
private void G_tbx_canvasSize_Enter(object sender, EventArgs e)
{
(sender as TextBox).SelectAll();
}
Run Code Online (Sandbox Code Playgroud)
这应该以这种方式工作:
请帮忙!我不明白为什么会出现这种情况,这不应该发生......
提前致谢!