Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 如何在DataGrid控件上标记多重选择?_C# 4.0_Datagrid - Fatal编程技术网

C# 4.0 如何在DataGrid控件上标记多重选择?

C# 4.0 如何在DataGrid控件上标记多重选择?,c#-4.0,datagrid,C# 4.0,Datagrid,我有一个基于Datagrid的自定义控件。我想要实现的是多行选择,然后右键单击行选择器打开关联菜单。 实际情况:在用户右键单击行选择器之前,多行的选择工作正常。完成此操作后,只有一个选定行,即单击鼠标右键的行 我需要做的是:允许用户进行多个选择(行具有选择样式),然后右键单击打开上下文菜单,而不丢失以前的选择 我需要做什么?不,根本不是这样的。确保将DataGridViewMultiSelect属性设置为TRUE。然后将ContextMenustrip控件分配给datagrid的ContextM

我有一个基于Datagrid的自定义控件。我想要实现的是多行选择,然后右键单击行选择器打开关联菜单。 实际情况:在用户右键单击行选择器之前,多行的选择工作正常。完成此操作后,只有一个选定行,即单击鼠标右键的行

我需要做的是:允许用户进行多个选择(行具有选择样式),然后右键单击打开上下文菜单,而不丢失以前的选择


我需要做什么?

不,根本不是这样的。确保将
DataGridView
MultiSelect
属性设置为
TRUE
。然后将
ContextMenustrip
控件分配给datagrid的
ContextMenustrip
属性

这应该可以完成工作,而且多个选择也应该保留在鼠标右键单击上,除非在您的代码后面的某个地方您正在更改它


在这种情况下,您必须调试并找出在哪里以及如何调试。

刚刚重新查看了代码,发现我没有更新SelectedItems IList:

            Dispatcher.BeginInvoke(new Action(delegate
            {
                foreach (var item in e.RemovedItems)
                {
                    SelectedItems.Add(item);
                }
                SelectedItemsList.Add(SelectedItem);
            }), System.Windows.Threading.DispatcherPriority.ContextIdle, null);

它不是DataGridView,而是DataGrid。无论哪种方式,我都会假设它们以类似的方式工作。