c#winform 中 引发了“System.InvalidOperationException”类型的异常
无数据库操作,从网上down的一个程序,运行时出现这个错误privatevoidBlinkCaretTimer_Elapsed(objectsender,ElapsedE...
无数据库操作,从网上down的一个程序,运行时出现这个错误
private void BlinkCaretTimer_Elapsed(object sender, ElapsedEventArgs e)
{
//如果选择文本,我们不想要光标显示
//(From SHIFT+<-OR->)
if (!SelectingText && this.SelectionLength > 0)
{
SelectingText = true;
DrawCaret = false;
UpdateRegion();
}//if
else
if (!SelectingText)
{
DrawCaret = !DrawCaret;
DrawCaretToBitmap();
}//else
}//BlinkcaretTimer Elapsed
在if中的this.SelectionLength > 0处异常:
this.SelectionLength = “this.SelectionLength”引发了“System.InvalidOperationException”类型的异常 展开
private void BlinkCaretTimer_Elapsed(object sender, ElapsedEventArgs e)
{
//如果选择文本,我们不想要光标显示
//(From SHIFT+<-OR->)
if (!SelectingText && this.SelectionLength > 0)
{
SelectingText = true;
DrawCaret = false;
UpdateRegion();
}//if
else
if (!SelectingText)
{
DrawCaret = !DrawCaret;
DrawCaretToBitmap();
}//else
}//BlinkcaretTimer Elapsed
在if中的this.SelectionLength > 0处异常:
this.SelectionLength = “this.SelectionLength”引发了“System.InvalidOperationException”类型的异常 展开
展开全部
程序不完整,if (!SelectingText && this.SelectionLength > 0)中的this是什么东西?应该是自定义的控件吧,SelectionLength应该是用户定义的属性,你跟踪一下,我怀疑在这一句代码中SelectionLength的值为null,所以引发了异常。解决办法,检查SelectionLength赋值的地方,保证在这一句代码前赋值,或者为SelectionLength属性设置默认值为0
更多追问追答
追问
是的是的,是一个自定义控件,是重写RichTextbox的一个控件。
我在它的上面写了this.SelectionLength=0;它还是这个错
this.SelectionLength = “this.SelectionLength”引发了“System.InvalidOperationException”类型的异常。
base {System.SystemException} = {"线程间操作无效: 从不是创建控件“”的线程访问它。"}
追答
估计控件会有一句这样的代码,我不区分大小写了:
private int _selecttionLength;你把这一句修改为private int _selecttionLength=0;这样应该不会引发异常,不过可能达不到程序原来要实现的效果。如果牵涉到多线程,你找一下线程间通信的文章看一下
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询