如何添加连字符“-”以将文本框中的每个输入或单击的值与 C# 中的许多按钮分开?
How to add a hyphen "-" to separate each entered or clicked value in Textbox from many buttons in C#?
我是 C# (WinForms) 的初学者,现在我遇到了一个问题,如何添加“-”来分隔从不同按钮单击或输入的每个值。
示例:
btn1 = "01", btn2 = "02", btn3="03", btn4 = "04"
如果我单击第一个按钮将 01 插入文本框,如果我也单击第二个按钮然后再次将 02 插入文本框,但文本框格式应为 01-02 等等。
如何在 C# 中处理此语句?
编辑:这是我试过的代码:
private void txtFixedTypeTwo_TextChanged(object sender, EventArgs e)
{
string sVal = txtFixedTypeTwo.Text;
if (!string.IsNullOrEmpty(sVal))
{
if(txtFixedTypeTwo.Text.Length <= 11)
{
var cVal = sVal.Substring(sVal.Length - 2);
string nVal = sVal + "-" + cVal;
txtFixedTypeTwo.Text = nVal;
txtFixedTypeTwo.SelectionStart = txtFixedTypeTwo.Text.Length;
txtFixedTypeTwo.Focus();
}
}
}
按钮点击事件我是这样的:
private void btn01_Click(object sender, EventArgs e)
{
if (focusedTextbox != null)
{
// put something in textbox
focusedTextbox.Text += "01";
}
}
试试这个:
if(textBox1.Text.Length >= 2)
{
textBox1.Text += "-00"
}
else
{
textBox1.Text += "00"
}
What will happen is when the length of TextBox
is greater than equal to 2 it will add "-".
第一次点击00
第二次点击00-00
第三次点击00-00-00
。
为了防止重复,您需要创建方法。
void TextBoxValue(object sender, TextBox textBox, string value)
{
if(textBox.Text.Length >= 2)
{
textBox.Text += String.Format("-{0}", value)
}
else
{
textBox.Text += value;
}
}
public void Button1_Click(object sender, EventArgs e)
{
if(textBox.Text.Length > 0)
textBox.Text += "-";
Button butt = (Button)sender;
textBox.Text += butt.Text;
}
据我了解,您有 Button.Text= 01,02 等等。您需要为所有按钮添加此事件点击。
Button butt = (Button)sender;
在这一行中,您使用的是被点击的按钮。
你可以这样做:
Action<string> append = t =>
textBox.Text +=
(textBox.Text.Length > 0 ? "-" : "") + t;
btn1.Click += (s, _) => append("01");
btn2.Click += (s, _) => append("02");
btn3.Click += (s, _) => append("03");
btn4.Click += (s, _) => append("04");
只需将此代码添加到 Form1_Load
方法中
我是 C# (WinForms) 的初学者,现在我遇到了一个问题,如何添加“-”来分隔从不同按钮单击或输入的每个值。
示例:
btn1 = "01", btn2 = "02", btn3="03", btn4 = "04"
如果我单击第一个按钮将 01 插入文本框,如果我也单击第二个按钮然后再次将 02 插入文本框,但文本框格式应为 01-02 等等。
如何在 C# 中处理此语句?
编辑:这是我试过的代码:
private void txtFixedTypeTwo_TextChanged(object sender, EventArgs e)
{
string sVal = txtFixedTypeTwo.Text;
if (!string.IsNullOrEmpty(sVal))
{
if(txtFixedTypeTwo.Text.Length <= 11)
{
var cVal = sVal.Substring(sVal.Length - 2);
string nVal = sVal + "-" + cVal;
txtFixedTypeTwo.Text = nVal;
txtFixedTypeTwo.SelectionStart = txtFixedTypeTwo.Text.Length;
txtFixedTypeTwo.Focus();
}
}
}
按钮点击事件我是这样的:
private void btn01_Click(object sender, EventArgs e)
{
if (focusedTextbox != null)
{
// put something in textbox
focusedTextbox.Text += "01";
}
}
试试这个:
if(textBox1.Text.Length >= 2)
{
textBox1.Text += "-00"
}
else
{
textBox1.Text += "00"
}
What will happen is when the length of
TextBox
is greater than equal to 2 it will add "-".
第一次点击00
第二次点击00-00
第三次点击00-00-00
。
为了防止重复,您需要创建方法。
void TextBoxValue(object sender, TextBox textBox, string value)
{
if(textBox.Text.Length >= 2)
{
textBox.Text += String.Format("-{0}", value)
}
else
{
textBox.Text += value;
}
}
public void Button1_Click(object sender, EventArgs e)
{
if(textBox.Text.Length > 0)
textBox.Text += "-";
Button butt = (Button)sender;
textBox.Text += butt.Text;
}
据我了解,您有 Button.Text= 01,02 等等。您需要为所有按钮添加此事件点击。
Button butt = (Button)sender;
在这一行中,您使用的是被点击的按钮。
你可以这样做:
Action<string> append = t =>
textBox.Text +=
(textBox.Text.Length > 0 ? "-" : "") + t;
btn1.Click += (s, _) => append("01");
btn2.Click += (s, _) => append("02");
btn3.Click += (s, _) => append("03");
btn4.Click += (s, _) => append("04");
只需将此代码添加到 Form1_Load
方法中