c#文本框文本为实心值

时间:2012-11-15 18:34:37

标签: c# textbox

我需要创建一个字符串/ int,它将包含texbox中的文本。它必须是稳定的,编辑此文本框后无法更改此字符串/ int。 有解决方案吗 阻止文本框或类似的东西:

string x = textBox1.Text;

不满足我

编辑; 我懂了: string x = textBox1.Text; 所以每次都会从textBox1接收值,并且可以更改文本框的值

2 个答案:

答案 0 :(得分:0)

如果您想要一个始终包含文本框中当前文本的变量,这里有一些选项。

第一个选项是,只是......不是,并且在您想要访问文本时始终使用textbox1.Text,而不是在其位置使用变量。

下一个选项是创建一个属性。如果不真正改变任何东西,它可能会使语法更好一些:

private string MyText
{
    get
    {
        return textbox1.Text;
    }
    set
    {
        textbox1.Text = value;
    }
}

然后您可以使用MyText代替textbox1.Text。它不会真正改变任何东西,但它可能会缩短语法。

最后一个选项是在文本框文本更改时更新一个字符串:

private string myText;
public Form1()
{
    InitializeComponent();

    textbox1.TextChanged += (_, args) => myText = textbox1.Text;
}

虽然这在技术上可能与你所问的最接近,但这也是我不建议做的事情。它只是不会使用属性获得任何东西,并且设置该字符串的值不会设置文本框的值。

答案 1 :(得分:0)

这不是很清楚你想要什么,所以这是我的猜测:

您不希望TextBox可编辑...

TextBox有两个可以帮助您的属性:

EnabledReadOnly

如果您将Enabled设置为false,则TextBox将显示为灰色,用户将无法再更改文本。

如果将ReadOnly设置为true,TextBox将不会显示为灰色,但用户将无法更改文本。