[英]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.