imagelist控件报错
修改了一个窗体,从其他窗体中拷贝一个imagelist,放入其中使用。开始生成正确,执行正确。但是,大概一个小时后(中间未做其他操作),再运行程序时,当点击这个修改过的窗体时,报错,无法进入界面。
查看错误原因,是在该窗体的desinger中,提示“调用的目标发生了异常,索引超出了界限。”
而现在这个窗体的设计器也打不开,提示:
<html><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"><title></title><style>.ErrorStyle { font-family: tahoma; font-size: 11 pt; text-align: left}.DetailsStyle { font-family: tahoma; font-size: 10pt; text-align: left;text-indent: 0; word-spacing: 0; line-height: 100%; float: left; margin-top: 0; margin-bottom: 0}.StackStyleVisible { font-family: tahoma; font-size: 10pt; text-align: left; margin-left: 20; text-indent: 0}.StackStyleHidden { display:none; font-family: tahoma; font-size: 10pt; text-align: left; margin-left: 20; text-indent: 0}</style></head><body><DIV class="DetailsStyle" width="100%"><table border="0" width="100%" id="table1" height="100%" cellspacing="0" cellpadding="0"><tr><td height="40" bgcolor="#FF9999" width="8%" style="letter-spacing: 0" align="center"><img border="0" src="C:\Users\hp\AppData\Local\Temp\877468.tmp" width="35" height="35" alt="ErrorImage" ></td><td height="40" bgcolor="#FF9999" width="91%" style="vertical-align: top; letter-spacing: 0" align="left"><b><font size="2" face="Arial" fontsize="70%">加载设计器时遇到一个或多个错误。这些错误在下面列出。一些错误可通过重新生成项目来修复,而另一些错误则需要更改代码。</font><font size="2" face="Arial"></font></b></td></tr><tr><td colspan="2" align="left" valign="top"><DIV id="div1" class="ErrorStyle" width="100%"><span style="font-weight: 600"><br>指定的参数已超出有效值的范围。
参数名: “0”不是“index”的有效值。 </span><br><a href="" id="details0">隐藏</a><font color="#0000FF">  </font></DIV> </td> </tr> <tr><td colspan="2" align="left" valign="top"><DIV id="div20" class="StackStyleVisible" width="100%"><br> 在 System.Windows.Forms.Design.ImageListDesigner.OriginalImageCollection.get_Item(Int32 index)<br> 在 System.Windows.Forms.Design.ImageListDesigner.OriginalImageCollection.SetKeyName(Int32 index, String name)<tr><td colspan="2" align="left" valign="top"><DIV id="div1" class="ErrorStyle" width="100%"><span style="font-weight: 600"><br>指定的参数已超出有效值的范围。
参数名: “1”不是“index”的有效值。 </span><br><a href="" id="details1">隐藏</a><font color="#0000FF">   --------------------编程问答--------------------
你看看你imagelist里有多少个。。。。
1就超出索引了。。要么里面只有一个。。索引从0开始
要么就是根本没得到东西 --------------------编程问答-------------------- F11单步,跟踪查看相关数据 --------------------编程问答-------------------- 在循环的地方,跟踪看一下。 --------------------编程问答-------------------- 我用F11跟踪了。这个list里的值的确很多,可我拷贝来源的那个窗体里,也只用到1个图片,但没有报错。我这边是全盘按照那个窗体做的操作。 --------------------编程问答-------------------- 可能是资源文件错误了
你在 designer.cs 里查找 imagelist 获取资源图片的代码,看是否有异常
或者,干脆把这个控件删除,进入窗口设计界面重新创建一个 --------------------编程问答-------------------- 刚才对照了一下,这个imagelist是在ultraToolbarsManager上使用的,为添加的BUTTON插图片。
但在拷贝来源的那个窗体designer.cs中,ultraToolbarsManager是在imagelist前面,而现在报错的窗体中,ultraToolbarsManager是在imagelist后面,这个是不是就是问题呢?
另外,如果删除控件的话,我只用删除imagelist吗 --------------------编程问答-------------------- 我在designer.cs中,先把imagelist注释掉了,然后可以执行。但BUTTON的图片没了。
这个问题,昨天就发生过一次,当时以为是自己的程序写法问题。没太注意,今天又发生了。
那么是否是imagelist的某些属性有关呢。是否imagelist不能被随意的复制粘贴使用呢?
但它做个一个控件,应该是有公用性才对的。为什么会出现这种问题呢
补充:.NET技术 , C#