【问题标题】:c# controlling datagridview columns drag and drop operationc#控制datagridview列拖拽操作
【发布时间】:2010-08-09 07:59:14
【问题描述】:

我有一个 datagridview 表,我想在某些特定情况下禁用拖放。

例子:

我有 4 列名为 A、B、C、D。我将它们分为 2 组:A、B 和 C、D(对于用户来说,它们看起来像 4 个普通列)。现在用户拖动A或B列时,只能放在C之前。当他拖动C或D时,只能放在B之后。

我试图检测 ColumnDisplayIndexChanged 中的 DisplayIndex 值,但是这个事件被触发了多次,并且我得到了一个异常,即 DisplayIndex 正在被更改或……我当时无法更改它。

有什么办法可以做到吗?
提前致谢。

【问题讨论】:

    标签: c# datagridview drag-and-drop


    【解决方案1】:

    拖放以DataGridView::MouseDown 事件开始。在那里,您可以记住拖动了哪一列

    // Get the index of the item the mouse is below.
    int columnIndexFromMouseDown = dataGridView1.HitTest(e.X, e.Y).ColumnIndex;
    // Get the name
    string columnDragName = dataGridView1.Columns[columnIndexFromMouseDown].Name;
    

    记住列名并对照DataGridView::DragDrop 中的“拖放到列”进行检查。如果可以删除它,请发挥你的魔力,否则如果列组合不正确,则什么也不做。

    【讨论】:

      猜你喜欢
      • 2011-06-14
      • 2021-11-18
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 2021-10-20
      相关资源
      最近更新 更多