C# 设置WPF';s Textblock.Text属性引发NullReferenceException
这是我的代码,它没有显示任何错误。 但是当我运行它时,我得到一个C# 设置WPF';s Textblock.Text属性引发NullReferenceException,c#,wpf,text,textblock,C#,Wpf,Text,Textblock,这是我的代码,它没有显示任何错误。 但是当我运行它时,我得到一个NullReferenceException textBlock.Text = "Text"; 此语句位于滑块的ValueChanged事件中,如果有关系的话。我假设此代码在构造函数中。执行此行之前,请确保调用了InitializeComponents: Object reference not set to an instance of an object. publicYourWindow() { TextBlock.Tex
NullReferenceException
textBlock.Text = "Text";
此语句位于滑块的ValueChanged事件中,如果有关系的话。我假设此代码在构造函数中。执行此行之前,请确保调用了
InitializeComponents
:
Object reference not set to an instance of an object.
publicYourWindow()
{
TextBlock.Text=“Text”//如果这是在编译时,甚至不是在运行时,那么您对TextBlock对象的引用似乎不正确
这就是你的密码吗?
在XAML中尝试以下操作:
public YourWindow()
{
TextBlock.Text = "Text"; // <- bad
InitializeComponents();
TextBlock.Text = "Text"; // <- good
}
如果文本块定义不是此
,则程序根本无法编译
但是如果是这样的话,那么只需确保在访问任何孩子之前执行窗口构造函数中的InitializeComponent()
。在InitializeComponent()调用中已经发生了“valuechanged”事件。
因此,您可能需要在算法中检查textbox==null(如果这是真的,请不要做任何事情!)
有同样的问题,但是已经打开了这个线程,所以..已经晚了,但希望它能很快帮助其他人:)NullReferenceException发生在运行时,而不是编译时。在您的cs文件中,您在哪里设置.Text属性?可能还没有创建实例。@billb它在带有XAML和一切。我确信这些信息绝对不足以提出一些解决方案。如果我没有错,您正在尝试这样做。TextBlock TextBlock=null;TextBlock.Text=“Text”;@bathineni我真的说了所有的话。:请用这行代码的一点上下文更新你的问题。我不知道你在哪里执行它。我编辑了这个问题。(“我在一个滑块中写这个。”)@Ken:没有XAML定义TextBlock。你能告诉我怎么做吗?我不太明白。对不起。(我刚开始用WPF做某事,只是C#的初学者,很抱歉这么愚蠢)@Ken:你是如何声明TextBlock
变量的?你是如何将它放入表单的?
<TextBlock x:Name="myTextBlock" />
myTextBlock.Text = "Text";