我需要创建一个字符串/ int,它将包含texbox中的文本。它必须是稳定的,编辑此文本框后无法更改此字符串/ int。 有解决方案吗 阻止文本框或类似的东西:
string x = textBox1.Text;
不满足我
编辑; 我懂了: string x = textBox1.Text; 所以每次都会从textBox1接收值,并且可以更改文本框的值
答案 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
有两个可以帮助您的属性:
Enabled
和ReadOnly
如果您将Enabled
设置为false,则TextBox
将显示为灰色,用户将无法再更改文本。
如果将ReadOnly
设置为true,TextBox将不会显示为灰色,但用户将无法更改文本。