更改标签文本错误c#

本文关键字:错误 文本 标签 | 更新日期: 2023-09-27 18:18:18

程序停止工作,出现以下警告

类型为"System"的未处理异常。

WindowsFormsApplication10.exe出现NullReferenceException

附加信息:对象引用未设置为类的实例对象。

停止的代码如下:

string stripStatusL = "some text: " + keepValues[lastTaken].ToString();
                toolStripStatusLabel1.Text = stripStatusL;

它只是一个带标签的StatusStrip。我正在尝试更改标签的文本。通常它适用于没有StatusStrip的Label。我错在哪里?

Visual Studio 2010c#

更改标签文本错误c#

我最好的猜测是keepValuesnulllastTaken索引/键(您的代码没有说它是列表还是字典)在集合中不存在。通常的原因是表单设计器可能无法在初始化时传入外部数据。表单有一个DesignMode属性,如果表单在设计器中运行,则该属性为真,您可以使用该属性在需要时提供一些模拟数据。

我猜keepValues[lastTaken]是空的。

所以keepValues[lastTaken].ToString();会给你一个NullReferenceException

我建议使用调试器逐步检查程序,并检查哪个对象为null

NullReferenceException表示实例为空。通过访问空实例,您将获得NullReferenceException。确保控件不为空。只要在悬停在它上面的行上设置一个断点,你就会看到哪里出了问题。

  1. keepValues集合不包含等于lastTaken的键,或者
  2. keepValues[lastTaken]存在,但其值为null
string[] keepValues=new string[5];
int lastTaken=6;
string temp=keepValues[lastTaken].ToString();

这将创建异常

An unhandled exception of type 'System.NullReferenceException' occurred in WindowsFormsApplication10.exe
Additional information: Object reference not set to an instance of an object.
所以要记住数组的长度和你用来访问数组值的索引。