一个无法理解的错误。。

knightisso 2003-03-22 05:27:19
我在一个winform中放了一个TextBox控件,然后定义了一个方法
private void AddLog(string msg,TextBox textbox)
{
textbox.AppendText(msg + "\r\n");
}

在构造函数中放了这么一句话
this.AddLog("加油!!",this.textBox1);
然后调试居然出错,错误内容如下
未处理的“System.ArgumentOutOfRangeException”类型的异常出现在 mscorlib.dll 中

其他信息:索引和长度必须引用该字符串内的位置。
很是郁闷阿。。这到底是怎么回事。。高手帮忙。。
...全文
25 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
knightisso 2003-03-23
  • 打赏
  • 举报
回复
说明的好详细噢。。那么在winform的构造函数Form中无法调用还没有初始化完成的控件。。是不是这个意思。。
可是我的这个问题还是不知道怎么解决阿。如果不在Form初始化的时候调用那要如何写这个代码呢??
gujianxin 2003-03-23
  • 打赏
  • 举报
回复
不能放在构造函数中,

因为成员变量没有初始化

Congy 2003-03-23
  • 打赏
  • 举报
回复
Form_Load()
lanjian88 2003-03-23
  • 打赏
  • 举报
回复
同意楼上的关于初始化的说法,试试先将SelectText string 初始化一下。
Congy 2003-03-22
  • 打赏
  • 举报
回复
TO junqiang(一点) :
看来你是根本不懂什么叫构造函数,在你的构造函数执行之前,所有的成员都已经初始化了,这个问题是由于textbox内部的一个成员未初始化造成的,SelectText string, 他的初始化是必须在整个窗体的界面都构建完之后才开始的,所以当在窗体的构造函数种调用它时会造成访问SelectText成员抛出System.ArgumentOutOfRangeException异常,这就是问题的真正原因,而非什么bug
junqiang 2003-03-22
  • 打赏
  • 举报
回复
构造函数没执行完,类还未生成,在此处调用他的方法当然有问题。
knightisso 2003-03-22
  • 打赏
  • 举报
回复
thank you i try it.
saucer 2003-03-22
  • 打赏
  • 举报
回复
I heard it is a bug, try to upgrade to .NET 1.1 or do not call the method in the constructor
knightisso 2003-03-22
  • 打赏
  • 举报
回复
磕头鞠躬,烧香拜佛。

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧