C# 防止只读列重新排序

C# 防止只读列重新排序,c#,winforms,datagridview,C#,Winforms,Datagridview,我有一个DataGridView,其中有三个只读列和一个或多个其他可写列。用户已经决定他们需要能够对列进行重新排序。我需要一种方法来允许他们重新排序可写列,而不是只读列。我唯一想到的是检查刚刚在ColumnDisplayIndexChanged事件中移动的列是否为只读,检查它的名称,然后将它移回我想要的位置。我不喜欢那种解决办法。有人有更优雅的解决方案吗 如果启用了列重新排序,则冻结列将被视为与未冻结列不同的组。用户可以在任一组中重新定位列,但不能将列从一个组移动到另一个组 这听起来像你想要的吗

我有一个DataGridView,其中有三个只读列和一个或多个其他可写列。用户已经决定他们需要能够对列进行重新排序。我需要一种方法来允许他们重新排序可写列,而不是只读列。我唯一想到的是检查刚刚在
ColumnDisplayIndexChanged
事件中移动的列是否为只读,检查它的名称,然后将它移回我想要的位置。我不喜欢那种解决办法。有人有更优雅的解决方案吗

如果启用了列重新排序,则冻结列将被视为与未冻结列不同的组。用户可以在任一组中重新定位列,但不能将列从一个组移动到另一个组

这听起来像你想要的吗

如果启用了列重新排序,则冻结列将被视为与未冻结列不同的组。用户可以在任一组中重新定位列,但不能将列从一个组移动到另一个组

这听起来像你想要的吗


默认情况下,您可以禁用列重新排序,并且仅当鼠标光标位于要移动的列上时才启用它


这并不是说我真的尝试过,但值得一试。

您可以在默认情况下禁用列重新排序,并且仅当鼠标光标位于要移动的列上时才启用它


并不是说我真的试过这个,但值得一试。

就是这个。我实际上看到了这个属性,但从VS中的描述来看,它听起来好像只与水平滚动有关。非常感谢!就是这样。我实际上看到了这个属性,但从VS中的描述来看,它听起来好像只与水平滚动有关。非常感谢!