簡體   English   中英

如何在C#和Winforms中禁用從DataGridView的特定行拖動?

[英]How to disable Drag from a particular row of a DataGridView in C# and Winforms?

我正在尋找成功的拖放操作后禁用DataGridView行的最佳方法。 因此,我已經刪除了該行,並使用背景色將其標記為已移動。

現在, 我需要在同一行上進一步禁用“拖放” 不刪除行就可以嗎?

我可以取消選擇已刪除的datagridview行,但不能將其標記為“不可拖動”:

dgvToolPosition.Rows[dgvToolPosition.SelectedRows[0].Index].Selected = false;

有什么可能的方法來設置行的屬性,從而避免在已刪除的行的List<DataGridViewRowCollection>上插入相應的索引?

將其拍攝為黑暗,但是您不能捕獲捕捉事件並檢查是否將其移至同一行嗎? 我對該事件進行了Google的快速搜索,這是我想到的:

https://msdn.microsoft.com/zh-CN/library/system.windows.forms.dragdropeffects(v=vs.110).aspx

避免在先前放置的行上發生Drag事件的最佳方法是檢查我在成功放置操作( DefaultCellStyle.BackColor )上設置的行的唯一屬性:

// Check if a row in the current selection has a gray background color,
// so it can be skipped on Drag&Drop.
                foreach(DataGridViewRow selectedRow in dgvToolPosition.SelectedRows)
                {
                    if(selectedRow.DefaultCellStyle.BackColor == FCSCoreGlobal.ColorGray) 
                         return;
}

我知道這不是最好的方法,但是到目前為止,這是我發現的最好的技巧。 我仍在尋找DataGridViewRow上的AllowDrag屬性以設置為false。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM