public partial class Form1 : Form
{
public static string a = "a"; public static string b = "b"; public static string c = "c";
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = a;
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = b;
}
private void button3_Click(object sender, EventArgs e)
{
textBox1.Text = c;
}
private void button4_Click(object sender, EventArgs e)
{
a = null;
b = null;
c = null;
}
}
我想为聊天制作一个简单的键盘
我用一个小样本程序启动它,其中只有3个按钮;按钮a,按钮b,按钮c分别表示a,b,c
当我运行程序时,我按下按钮a以获取& b按钮b(现在我想要输出格式为ab),但它首先显示a然后按下按钮b它会删除a并显示b。
我想制作更多这样的按钮来制作键盘。
基本上,我想按顺序打印存储在按钮中的字母,但它会删除第一个字母,然后打印下一个字母..
答案 0 :(得分:2)
创建屏幕键盘的最简单方法是使用按钮文本,但退格,输入,清除等特殊键除外。 这样,您可以使用一种方法处理所有文本按钮单击事件:
private void KeyButton_Click(object sender, EventArgs e)
{
textBox1.Text += ((Button)sender).Text;
}
private void ClearButton_Click(object sender, EventArgs e)
{
textBox1.Text = string.Empty;
}
private void BackspaceButton_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text.SubString(0, textBox1.Text.Length-1);
}
答案 1 :(得分:1)
它会删除该值,因为您使用的是=
运算符。尝试使用+=
textBox1.Text += c;
textBox1.Text = textBox1.Text + c;
您还可以从Button的Text
属性中获取文本值。
并且每个按钮只有一个Button.Click
事件处理程序。
private void button_Click(object sender, EventArgs e)
{
var button = sender as Button;
textBox1.Text = textBox1 + button.Text;
}
答案 2 :(得分:0)
正如我在你发布代码之前在评论中告诉你的那样,你需要将字符连接(a.k.a 追加)到文本框。
如果您有一个名为textBox1
的文本框,请执行以下操作:
textBox1.Text = 'a'
将替换已在文本框中写入的文字“a”
您需要做的是使用+=
运算符:
textBox1.Text += a;
textBox1.Text = b;
textBox1.Text = c;