我想从一个文本框中获取一个值,然后将它移动到一个 Click 事件到代码中的其他位置。所以这就是我所做的:
首先,我制作了一个这样的私有字符串:
private string someText;
然后我的 Click 事件中有以下代码:
someText = inputText.Text;
现在我想在另一个地方使用它,所以我想我可以像这样使用它:
TextBlock1.Text = someText;
但是这里的字符串someText是空的。我怎么解决这个问题?
这取决于您何时分配 TextBlock1.Text,因为您在页面加载后触发 onClick 事件。
如果您可以举例说明您在 someText 上分配/绘图的位置/时间,这将有所帮助。
(以及您正在工作的环境、网站、WPF 应用程序等 :))
如果您在同一个类中使用它应该可以工作,如果您试图在类之外使用它,则需要将其公开,例如通过将其声明为公共或为其创建公共属性。
尝试改变:
private string someText;成为public string someText;
并初始化
inputText作为public TextBox inputText;
我猜你制作了“私有字符串 someText”局部变量。
你应该做全局变量
例如
class A
{
private string someText; //here
//Your Event
}
你可能会这样做:
private string someText;
public MyForm()
{
InitializeComponent();
TextBlock1.Text = someText; // At this point, someText == null
}
private void Button_Click(object sender, EventArgs e)
{
someText = inputText.Text;
}
所以你真正想要的是:
private void Button_Click(object sender, EventArgs e)
{
someText = inputText.Text;
TextBlock1.Text = someText;
// or simply
TextBlock1.Text = inputText.Text;
// for short
}
不知何故,这种私有字符串或公共字符串的方法不起作用。所以我通过将其保存为隔离存储并在使用时清除它来解决它。
也许是一个愚蠢的解决方案,但我工作了。