【问题标题】:C# Gridview, rearrangeC# Gridview,重新排列
【发布时间】:2011-04-05 08:06:23
【问题描述】:

我真的不知道该给标题写什么,对此感到抱歉。我有 2 个列,其中列出了 2 个文件夹中的文件。现在我想做的是让用户能够通过单击一列中的一个文件然后单击另一列中的另一个文件来重新排列文件。该应用程序将这两个文件合并在一起。

另一种选择只是使用数据网格及其拖放功能(一列是静态的,一列可通过拖放或其他方式重新排列)但这样做并不是我真正想要的......

所以,欢迎所有选项..

编辑: 使用WinForms,它不必是gridview,只是我想不出其他任何东西..

【问题讨论】:

  • GridView 模棱两可。请指定 UI 框架(WebForms、WinForms 或 WPF)

标签: c# winforms gridview


【解决方案1】:

我将只创建两个DataGridView(或ListView,如果您愿意),第一个列出文件夹A 中的文件,第二个列出文件夹B 中的文件。

然后允许在两个网格中一次只选择一行(MultiSelect = falseSelectionMode = FullRowSelect)并添加一个名为“Merge Selected”的按钮,它只是将第一个网格中选择的文件与在第一个网格中选择的文件合并第二个网格。

【讨论】:

  • Thnx,我应该更多地解释我的应用程序。整个含义是通过那些 A 和 B 文件夹列表自动合并这些文件。当用户必须一件一件地做时,它会失去意义(:
  • @hs2d: 好吧,所以你需要安排他们的顺序来构建file A - file B 匹配以合并...然后允许多项选择并允许重新排序数据网格行添加例如上下箭头按钮(就像在许多设计师收藏编辑器中一样)
  • 是的,我还没有考虑添加向上/向下箭头。如果没有更好的想法,我想我会考虑它作为一种选择..
  • @hs2d:上下箭头确实简化了工作......使用拖放重新排序并不是那么容易,但互联网上有一些例子,例如HERE.
  • @hs2d: 另一个可重新排序的 ListView 示例 --> Here
【解决方案2】:
  1. 使用链接到每个文件夹的 2 个列表框,以便用户可以向上/向下滚动以选择他们需要的文件
  2. Have button "Merge Files" which gets enabled when an item from both listboxes are selected.
  3. 当用户点击“合并文件”时,会有一个确认框,以确保它没有点击我的错误。

【讨论】:

    【解决方案3】:

    我假设您在谈论 DataGridView,因为 DataGrid 已被弃用。

    在设计器中,确保将 DataGridView 上的 SelectionMode 设置为 CellSelect。然后在属性 --> 事件中,双击SelectionChanged 事件以创建处理该事件的新方法。

    将此代码添加到方法中:

    private DataGridViewCell _lastCellSelected = null;
    private void dataGridView_SelectionChanged(object sender, EventArgs e)
    {
        if(dataGridView.SelectedCells.Count == 0)
        {
            _lastCellSelected = null;
            return;
        }
    
        DataGridViewCell selectedCell = dataGridView.SelectedCells[0];
        if(_lastCellSelected == null || selectedCell.ColumnIndex == _lastCellSelected.ColumnIndex)
        {
            //User clicked first cell
            _lastCellSelected = selectedCell;
        }
        else
        {
            //User has clicked two cells from different columns
            string filename1 = _lastCellSelected.Value;
            string filename2 = selectedCell.Value;
    
            //TODO: "Merge" files here
    
            _lastCellSelected = null;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 1970-01-01
      • 2012-02-17
      • 2018-03-23
      • 1970-01-01
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多