【发布时间】:2021-11-29 08:48:04
【问题描述】:
所以这是一件相当简单的事情,我只是好奇是否有更好的方法来节省代码行。对于课堂,我们正在制作电传打字机。基本上有一个文本框,以及一系列按钮 A-Z 和 0-9。当您单击按钮时,它会将相应的字母/数字添加到文本框中。单击发送时,它将文本框的内容添加到标签并重置文本框。一切正常,只需几分钟即可构建。但是有一堆多余的行,我很好奇是否有办法用方法清理代码。
这是我当前的代码。
private void btn_A_Click(object sender, EventArgs e)
{
box_UserInput.Text = box_UserInput.Text + "A";
}
如您所见,它非常简单明了。单击 A,“A”被添加到文本框中。但是按钮的 Text 属性也只是“A”,我想知道是否有一种方法可以复制该按钮的文本属性并将其添加到文本框字符串中。
类似的东西,除了使用通用方法之外,它不必指定 btn_A 它只是根据单击的按钮继承要复制的按钮。这样我就可以在每个按钮上使用同一行代码。
private void btn_A_Click(object sender, EventArgs e)
{
box_UserInput.Text = box_UserInput.Text + btn_A.Text;
}
【问题讨论】:
-
这能回答你的问题吗? Get access to the Sender control - C#
-
尽量坚持使用 $"{box_UserInput.Text}{btn_A.Text}" 因为在 C# 中使用 '+' 是不好的做法。 (来自 C# 版本升级后的 Microsoft 培训材料。)
-
使用发件人演员表。 ((Button)sender).Text - 类似的东西...
-
@Martheen 这是一种有趣的方式。对于一个极端的想法,如何在 Blender 中渲染图像并在 JSON 文件中创建定义的区域,导入两者并使用当前鼠标位置,检查 JSON 导入区域的边界,然后将其添加到输出控件。我几乎只是为了好玩!
-
@James 喜欢 stackoverflow.com/questions/21286617/… 我想
标签: c# visual-studio winforms