代码之家  ›  专栏  ›  技术社区  ›  kyrisu

是否“未设置对象引用。。“重画控件时是否可以连接到计算机上的权限?

  •  0
  • kyrisu  · 技术社区  · 15 年前

    重新绘制DataGridView控件时出现以下异常:

    未处理的异常:Odwoanie do obiektu nie zostao ustawione na wyspienie obiektu。

    • 来源:System.Windows.Forms

    • 堆栈:w System.Windows.Forms.DataGridView.PaintRows(图形g,矩形boundingRect,矩形clipRect,添加了布尔单水平边界) w System.Windows.Forms.DataGridView.PaintGrid(图形g,矩形网格边界,矩形clipRect,添加布尔单垂直边界,添加布尔单水平边界) w System.Windows.Forms.DataGridView.OnPaint(PaintEventArgs e) w System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e,Int16层,布尔disposeEventArgs) w System.Windows.Forms.Control.WmPaint(消息&m) w System.Windows.Forms.Control.WndProc(消息&m) w System.Windows.Forms.DataGridView.WndProc(消息&m) w System.Windows.Forms.Control.ControlNativeWindow.OnMessage(消息&m) w System.Windows.Forms.Control.ControlNativeWindow.WndProc(消息&m) w System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd,Int32 msg,IntPtr wparam,IntPtr lparam)

    基本上就是说

    对象引用未设置为对象的实例。

    奇怪的是,它似乎以某种方式与域用户权限相连接,因为在我的特权帐户(不是管理员,只是更特权的设置)上它工作,而在“普通”用户帐户上,它每次都崩溃。我不知道这些帐户之间的区别,它们不是我配置的,我无法访问广告配置。另一件事是,两台计算机上的.NET框架版本/更新是相同的。

    是否可能对每个应用程序、每个用户的线程数设置了某种限制?

    我能查到的任何提示都欢迎。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Hans Passant    15 年前

    调用堆栈没有显示此代码在UI线程上运行的证据。没有Application.Run()的迹象。这不正常,DataGridView不是线程安全控件。他们都不是。这样的代码可能会以非常不可预知的方式出现故障,NullReferenceException当然是可能的。

    请检查代码中可能已启动工作线程并正在直接更新DGV属性的任何位置。或者更常见的是,更新绑定到DGV的数据。您必须解除绑定以防止DGV更新在工作线程上运行,在UI线程上重新绑定。用一个后台工作人员来简化这个过程。

    推荐文章