单击时如何保存文本框的值

时间:2014-09-05 06:21:39

标签: c# winforms visual-studio

我有一个窗口表格。我出现了一些文本框,我需要的是选择两个文本框并临时保存它们的值,然后按一个按钮并进行比较。

如何做到这一点是C#Visual Studio?

我可以选择这些方框但是如何保存它们的价值呢?

修改

我可以点击两个控件,比如两个文本框等,然后突出显示它们。  protected void OnPaint(对象发送者,PaintEventArgs e)         {             System.Drawing.Rectangle selectionRectangle = this.ClientRectangle;

        var borderColor = Color.Tomatoe;
        var borderStyle = ButtonBorderStyle.Dashed;


        if (this.Selected == true)
        {
            ControlPaint.DrawBorder(
                e.Graphics,
                borderStyle
            );
        }
    }


 void Rectangle_MouseClick(object sender, MouseEventArgs e)
        {
            this.Select();
        }

        public override void SetColor(System.Drawing.Color color)
        {
            this.textBox1.BackColor = color;
        }

我按下按钮来比较所选控件,我需要创建一个获取当前控件状态的方法,然后比较具有this.Selected == true的选定值。

1 个答案:

答案 0 :(得分:1)

首先,我假设您可以从那里创建一个按钮点击事件,它应该是直接的。

private void buttonWithAGoodDescriptiveName_click(object s, EventArgs e)
{
    if(textboxWithDescriptiveName.Text == otherTbWithGoodName.Text)
        MessageBox.Show("woo it worked");
    else
        MessageBox.Show("Doh!");
}

您无需临时保存值,因为您可以直接访问文本框的内容。你可以在这个方法中创建局部变量来实现同样的目的,但它非常浪费。

您可以使用MSDN文档找到有关此方法中使用的一些内容的更多信息。

TextBox

MessageBox

您可以使用以下

搜索特定颜色的控件
var controls = this.Controls
                   .OfType<TextBox>()
                   .Where(tb => tb.BackColor == Color.Red)
                   .ToList();

if(controls.Count > 1)
    if(controls.Skip(1).All(c => c.Text == controls.First().Text)
        MessageBox.Show("woo");

假设您已将所选属性添加到您自己的文本框类覆盖中,则可以将控制变量更改为此。

var controls = this.Controls
                   .OfType<MyTextBox>()
                   .Where(tb => tb.Selected)
                   .ToList();