转:"为自动填充列调整大小期间不能执行此操作"解决办法 .
2013-07-15 16:04
316 查看
转载自:http://blog.csdn.net/zhxingway/article/details/5384690
今天在测试的时候,打开一个窗口突然发现出现以下错误,就算我在打开窗口那个按钮里面和新窗口初始化里面都加了Try...Catch来试图捕获异常都没用,不是弹出那个.Net下面的错误提示窗口,就是提示继续还是弹出的那个,呵呵 .
具体信息如下:
************** 异常文本 **************
System.InvalidOperationException: 为自动填充列调整大小期间不能执行此操作。
在 System.Windows.Forms.DataGridView.PerformLayoutPrivate(Boolean useRowShortcut, Boolean computeVisibleRows, Boolean invalidInAdjustFillingColumns, Boolean repositionEditingControl)
在 System.Windows.Forms.DataGridView.SetColumnHeadersHeightInternal(Int32 columnHeadersHeight, Boolean invalidInAdjustFillingColumns)
在 System.Windows.Forms.DataGridView.AutoResizeColumnHeadersHeight(Boolean fixedRowHeadersWidth, Boolean fixedColumnsWidth)
在 System.Windows.Forms.DataGridView.OnColumnHeadersGlobalAutoSize()
在 System.Windows.Forms.DataGridView.set_TopLeftHeaderCell(DataGridViewHeaderCell value)
在 System.Windows.Forms.DataGridView.GetCellInternal(Int32 columnIndex, Int32 rowIndex)
在 System.Windows.Forms.DataGridView.OnCellMouseEnter(DataGridViewCellEventArgs e)
在 System.Windows.Forms.DataGridView.UpdateMouseEnteredCell(HitTestInfo hti, MouseEventArgs e)
在 System.Windows.Forms.DataGridView.OnColumnWidthChanged(DataGridViewColumnEventArgs e)
在 System.Windows.Forms.DataGridView.OnBandThicknessChanged(DataGridViewBand dataGridViewBand)
在 System.Windows.Forms.DataGridView.AdjustFillingColumns()
在 System.Windows.Forms.DataGridView.ComputeLayout()
在 System.Windows.Forms.DataGridView.PerformLayoutPrivate(Boolean useRowShortcut, Boolean computeVisibleRows, Boolean invalidInAdjustFillingColumns, Boolean repositionEditingControl)
在 System.Windows.Forms.DataGridView.OnHandleCreated(EventArgs e)
在 System.Windows.Forms.Control.WmCreate(Message& m)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.DataGridView.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
照例在百度和GG搜索了一下,只在CSDN上面发现了两个提出此问题的帖子,但是并没有提出解决方法,后来思索了好久,发现是我把DataGridView的AutoSizeColumnsMode属性由AutoCells改为Fill了,改成Fill属性的话,那些列就会自动伸展到整个DataGridView的哦,这样就避免了列较少的时候在右边突出很多位置了,呵呵.但是问题却出来了,就是"为自动填充列调整大小期间不能执行此操作"这个啊,真该死,害我浪费半个小时宝贵的时候才解决.
据我所知:此种情况只适用于:
1.在窗口初始化的时候就对DataGridView进行数据绑定
2.DataGridView的AutoSizeColumnsMode属性为Fill
3.ColumnHeadersHeightSizeMode属性为AutoSize
好了废话不多说了,其实解决方法就是,再把DataGridView的ColumnHeadersHeightSizeMode属性由AutoSize改为EnableReSizing或者DisableResizing就行了.这样就不会出现"为自动填充列调整大小期间不能执行此操作"这个错误啦..
如果有说的不对的地方,恳请大家指正,另外很欢迎大家讨论,虽然是很简单的问题,呵呵 ....
今天在测试的时候,打开一个窗口突然发现出现以下错误,就算我在打开窗口那个按钮里面和新窗口初始化里面都加了Try...Catch来试图捕获异常都没用,不是弹出那个.Net下面的错误提示窗口,就是提示继续还是弹出的那个,呵呵 .
具体信息如下:
************** 异常文本 **************
System.InvalidOperationException: 为自动填充列调整大小期间不能执行此操作。
在 System.Windows.Forms.DataGridView.PerformLayoutPrivate(Boolean useRowShortcut, Boolean computeVisibleRows, Boolean invalidInAdjustFillingColumns, Boolean repositionEditingControl)
在 System.Windows.Forms.DataGridView.SetColumnHeadersHeightInternal(Int32 columnHeadersHeight, Boolean invalidInAdjustFillingColumns)
在 System.Windows.Forms.DataGridView.AutoResizeColumnHeadersHeight(Boolean fixedRowHeadersWidth, Boolean fixedColumnsWidth)
在 System.Windows.Forms.DataGridView.OnColumnHeadersGlobalAutoSize()
在 System.Windows.Forms.DataGridView.set_TopLeftHeaderCell(DataGridViewHeaderCell value)
在 System.Windows.Forms.DataGridView.GetCellInternal(Int32 columnIndex, Int32 rowIndex)
在 System.Windows.Forms.DataGridView.OnCellMouseEnter(DataGridViewCellEventArgs e)
在 System.Windows.Forms.DataGridView.UpdateMouseEnteredCell(HitTestInfo hti, MouseEventArgs e)
在 System.Windows.Forms.DataGridView.OnColumnWidthChanged(DataGridViewColumnEventArgs e)
在 System.Windows.Forms.DataGridView.OnBandThicknessChanged(DataGridViewBand dataGridViewBand)
在 System.Windows.Forms.DataGridView.AdjustFillingColumns()
在 System.Windows.Forms.DataGridView.ComputeLayout()
在 System.Windows.Forms.DataGridView.PerformLayoutPrivate(Boolean useRowShortcut, Boolean computeVisibleRows, Boolean invalidInAdjustFillingColumns, Boolean repositionEditingControl)
在 System.Windows.Forms.DataGridView.OnHandleCreated(EventArgs e)
在 System.Windows.Forms.Control.WmCreate(Message& m)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.DataGridView.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
照例在百度和GG搜索了一下,只在CSDN上面发现了两个提出此问题的帖子,但是并没有提出解决方法,后来思索了好久,发现是我把DataGridView的AutoSizeColumnsMode属性由AutoCells改为Fill了,改成Fill属性的话,那些列就会自动伸展到整个DataGridView的哦,这样就避免了列较少的时候在右边突出很多位置了,呵呵.但是问题却出来了,就是"为自动填充列调整大小期间不能执行此操作"这个啊,真该死,害我浪费半个小时宝贵的时候才解决.
据我所知:此种情况只适用于:
1.在窗口初始化的时候就对DataGridView进行数据绑定
2.DataGridView的AutoSizeColumnsMode属性为Fill
3.ColumnHeadersHeightSizeMode属性为AutoSize
好了废话不多说了,其实解决方法就是,再把DataGridView的ColumnHeadersHeightSizeMode属性由AutoSize改为EnableReSizing或者DisableResizing就行了.这样就不会出现"为自动填充列调整大小期间不能执行此操作"这个错误啦..
如果有说的不对的地方,恳请大家指正,另外很欢迎大家讨论,虽然是很简单的问题,呵呵 ....
相关文章推荐
- "为自动填充列调整大小期间不能执行此操作"解决办法
- "为自动填充列调整大小期间不能执行此操作"解决办法
- 转:"为自动填充列调整大小期间不能执行此操作"解决办法 .
- 在VMware虚拟机软件中安装的Ubuntu虚拟机的窗口不能自动调整大小的解决办法
- cmd控制台的点阵字体不能调整大小的解决办法
- 使用 Virtual Box (mac 版)安装 xp 虚拟机剪切板不能共享,屏幕不能自动调整的解决办法
- 关于【finder不能完成该操作 因为未能读取或写入"文件名"中的某些数据(错误代码-36)】快速解决办法
- windows下的任务不能自动执行的解决办法
- "应用程序试图执行安全策略不允许的操作"错误的解决办法
- Microsoft CRM "您查看的网页正在试图关闭窗口" 不能自动关闭的解决办法
- virtualBox 虚拟机窗口不能自由调整大小解决办法
- VMware Tools"无法计算本地文件大小。你可能没有执行该操作的权限。”的解决方法
- 写oracle行级触发器时,不能操作本表,报"表 *** 发生了变化,触发器/函数不能读"的错误的解决办法
- 【转】linux中执行外部命令提示" error while loading shared libraries"时的解决办法
- vs2005c#中用户组件在工具箱中不能自动出现的解决办法
- “没有关联的电子邮件程序来执行请求的操作” 的解决办法
- mysql 不能插入中文的解决办法,修改mysql的字符集,操作见蓝色字体部分
- Bootstrap之Carousel不能自动播放的解决办法,支持左右滑动手势
- sqlvarchar后自动填充空格解决办法(SET ANSI_PADDING)
- Xcode8.1中@IBDesignable以及@IBInspectable不能自动刷新的解决办法