我如何限制这些的使用?

时间:2013-11-24 14:25:23

标签: c#

我如何限制这些的使用?它们被绑定到C#Windows应用程序表单中的按钮,它正在运行。每当我单击按钮1次时它会显示textBox2文本+ Man,同样适用于textBox3文本+ Women。但当我点击它2次它显示为(让我们说textBox2文本是“你好”)你好男人。我怎样才能将它限制在一次,因为它永远不会超过1个字男人或每个女人1个字?

textBox2.Text += " Man";
textBox3.Text += " Women";

4 个答案:

答案 0 :(得分:1)

将其放在按钮点击处理程序中:

textBox2.Text = textBox2.Text.Contains("Man") ? textBox2.Text : textBox2.Text + " Man";
textBox3.Text = textBox3.Text.Contains("Women") ? textBox3.Text : textBox3.Text + " Women";

它的工作原理如下:

textbox2.text = condition? first expression:second expression;

如果条件的计算结果为true,则返回第一个表达式,否则返回第二个表达式。

答案 1 :(得分:0)

您可以使用.Tag属性:

string originalText = textBox2.Tag + "";
if (originalText.Length == 0)
{
    originalText = textBox2.Text;
    textBox2.Tag = originalText;
}
textBox2.Text = originalText + " Man";

其他文本框也一样。

为了使其更易于使用而不是为每个文本框重复所有这些行,请使用扩展方法:

public static class Extensions
{
    public static void AddOnce(this TextBox textbox, string text)
    {
        string originalText = textbox.Tag + "";
        if (originalText.Length == 0)
        {
            originalText = textbox.Text;
            textbox.Tag = originalText;
        }
        textbox.Text = originalText + text;
    }
}

然后就变得如此简单:

textBox2.AddOnce(" Man");
textBox3.AddOnce(" Women");

答案 2 :(得分:0)

将数据存储在实例字段中:

int maleCount = 0;
int femaleCount = 0;

每当有人点击按钮时,您都会递增相应的计数器并调用以下帮助程序:

void UpdateUI() {
       textBox2.Text = maleCount == 0 ? "" : " Man";
       textBox3.Text = femaleCount == 0 ? "" : " Women";
}

从数据中驱动用户界面。不要直接更改UI。将差异应用于UI是麻烦且容易出错的。最好有一个通用的辅助函数,一次更新所有内容。

答案 3 :(得分:0)

这可以通过简单的if语句直接完成:

if (!textBox2.Text.EndsWith(" Man"))
   textBox2.Text += " Man";

if (!textBox3.Text.EndsWith(" Women"))
   textBox3.Text += " Women";
相关问题