System.InvalidOperationException:在调整自动填充列时无法执行此操作

Aft*_*arm 9 c#

我在winform应用程序中有DataGridView并设置

this.dgvDte.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
Run Code Online (Sandbox Code Playgroud)

当我的项目运行一段时间打开时,但并不总是让我犯这个错误

"System.InvalidOperationException:在调整自动填充列时无法执行此操作"

任何身体都可以帮助我发生什么事情?

小智 17

this.dataGridView1.ColumnHeadersHeightSizeMode设置为AutoSize.

在创建DataGridView时,如果鼠标突然位于Column标头所在的位置,DataGridView将尝试处理该CellEnter事件,并尝试调整列或其他内容的大小,但此时DataGridView仍在创建.

结果,InvalidOperation抛出了一个.

解决方法如下:

在客户提供的项目,GridWrapper.cs文件中,放下以下行InitializeComponent();

this.dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
Run Code Online (Sandbox Code Playgroud)

将以下行放在GridWrapper_Load方法中:

this.dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
Run Code Online (Sandbox Code Playgroud)

许多客户发现在微软和社区其他成员可以推荐实现您的目标行为的论坛中讨论此类问题很有用.

链接中回答

  • 另见http://stackoverflow.com/questions/34344499/invalidoperationexception-this-operation-cannot-be-performed-while-an-auto-fill (2认同)

Dav*_* S. 1

也许您在加载值时迭代它们?尝试让您的应用程序等待或锁定这些操作。