如何添加连字符“-”以将文本框中的每个输入或单击的值与 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 方法中