我发现了c#的一个BUG! DataGrid在正常情况下会出错!

geniusoft 2002-08-11 02:01:08
(欲知详情,请qq: 89112923)
当双击datagrid第四行以下时,会出现错误。

我们知道,.net自带的winforms下的dataGrid是可以调整行宽的。
工作中要求,一般是双击一行后,弹出一个窗口,显示详细信息。
如果你在第五列,双击调整线,就是调整行宽的线,就会出错了:-)

一、错误为:
"索引超出范围.必须为非负值并小于集合大小.
参数名:startIndex








有关调用实时 (JIT) 调试而不是此对话框的详细信息,
请参阅此消息的结尾。

************** 异常文本 **************
System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名:startIndex
at System.Globalization.CompareInfo.IndexOf(String source, String value, Int32 startIndex)
at System.Windows.Forms.DataGridTextBoxColumn.GetPreferredHeight(Graphics g, Object value)
at System.Windows.Forms.DataGrid.RowAutoResize(Int32 row)
at System.Windows.Forms.DataGrid.OnMouseDown(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** 已加载的程序集 **************
mscorlib
程序集版本:1.0.3300.0
Win32 版本:1.0.3705.0
基本代码:file:///c:/winnt/microsoft.net/framework/v1.0.3705/mscorlib.dll
----------------------------------------
dc.ocx
程序集版本:1.0.953.24819
Win32 版本:1.0.953.24819
基本代码:file:///D:/work/n_e_w_good/dc/bin/Debug/dc.ocx.exe
----------------------------------------
System
程序集版本:1.0.3300.0
Win32 版本:1.0.3705.0
基本代码:file:///c:/winnt/assembly/gac/system/1.0.3300.0__b77a5c561934e089/system.dll
----------------------------------------
System.Windows.Forms
程序集版本:1.0.3300.0
Win32 版本:1.0.3705.0
基本代码:file:///c:/winnt/assembly/gac/system.windows.forms/1.0.3300.0__b77a5c561934e089/system.windows.forms.dll
----------------------------------------
System.Drawing
程序集版本:1.0.3300.0
Win32 版本:1.0.3705.0
基本代码:file:///c:/winnt/assembly/gac/system.drawing/1.0.3300.0__b03f5f7f11d50a3a/system.drawing.dll
----------------------------------------
System.Data
程序集版本:1.0.3300.0
Win32 版本:1.0.3705.0
基本代码:file:///c:/winnt/assembly/gac/system.data/1.0.3300.0__b77a5c561934e089/system.data.dll
----------------------------------------
System.Xml
程序集版本:1.0.3300.0
Win32 版本:1.0.3705.0
基本代码:file:///c:/winnt/assembly/gac/system.xml/1.0.3300.0__b77a5c561934e089/system.xml.dll
----------------------------------------
System.Data.resources
程序集版本:1.0.3300.0
Win32 版本:1.0.3300.0
基本代码:file:///c:/winnt/assembly/gac/system.data.resources/1.0.3300.0_zh-chs_b77a5c561934e089/system.data.resources.dll
----------------------------------------
System.EnterpriseServices
程序集版本:1.0.3300.0
Win32 版本:1.0.3705.0
基本代码:file:///c:/winnt/assembly/gac/system.enterpriseservices/1.0.3300.0__b03f5f7f11d50a3a/system.enterpriseservices.dll
----------------------------------------
mscorlib.resources
程序集版本:1.0.3300.0
Win32 版本:1.0.3300.0
基本代码:file:///c:/winnt/assembly/gac/mscorlib.resources/1.0.3300.0_zh-chs_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------
System.Windows.Forms.resources
程序集版本:1.0.3300.0
Win32 版本:1.0.3300.0
基本代码:file:///c:/winnt/assembly/gac/system.windows.forms.resources/1.0.3300.0_zh-chs_b77a5c561934e089/system.windows.forms.resources.dll
----------------------------------------

************** JIT 调试 **************
若要启用实时 (JIT) 调试,此
应用程序或计算机的配置文件 (machine.config) 的
system.windows.forms 节中必须设置 jitDebugging 值。
编译应用程序时还必须启用
调试。

例如:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

启用 JIT 调试后,任何未处理的异常
将被发送到此计算机上注册的 JIT 调试器,
而不是由此对话框处理。
...全文
26 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jcaomao 2002-08-17
  • 打赏
  • 举报
回复
我也遇到同样的问题,但是如果你不在双击事件里加代码,也就不会有问题, 我试过 startIndex 为负值。 没人回答只有想别的办法了
geniusoft 2002-08-12
  • 打赏
  • 举报
回复
理我的人为什么这样少?
wizard_mini 2002-08-11
  • 打赏
  • 举报
回复
9s9s

110,567

社区成员

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

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

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