[英]Datagridview Cancel Drag and Drop on Filler Column
我有一個將AllowUserToOrderColumns屬性設置為true的datagridview。
我在網格末尾還有一列,其中AutoSizeMode設置為填充,這用於填充網格,以便行看起來“完整”
我如何標記此列以僅禁用對該列的重新排序?
我已經嘗試了以下類似的方法
Private Sub dgvAdjustments_ColumnDisplayIndexChanged(sender As Object, e As DataGridViewColumnEventArgs) Handles dgvAdjustments.ColumnDisplayIndexChanged
If e.Column Is TheFillerColumn Then
e.Column.DisplayIndex = theGrid.Columns.Count - 1
End If
End Sub
哪個帖子如何在AllowUserToOrderColumns = true時建議如何在datagridview中拖動列
但是,嘗試執行此事件中想做的事情會引發錯誤,因為您無法在要調整的列上設置顯示索引。
問候。
您可以使用SynchronisationContext
的Post
方法。
在C#中,例如:
private void dataGridView1_ColumnDisplayIndexChanged(object sender, DataGridViewColumnEventArgs e)
{
SynchronizationContext.Current.Post(delegate(object o)
{
if (Column1.DisplayIndex != 1)
Column1.DisplayIndex = 1;
}, null);
}
另外,不要執行e.Column.DisplayIndex = ...
而是TheFillerColumn.DisplayIndex = ...
,因為已移動的列可以是另一列,並且可以在TheFillerColumn
之后TheFillerColumn
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.