c#加载表单时如何对listview排序
我有一个包含3列(Map、From、To)的listview(lvMap),我正在尝试编写一个在表单加载后立即调用的方法。此方法应该查看listview项,并按升序仅按“Map”和“From”两列对它们进行排序,我不希望它对“to”列进行排序。我已经写了下面的代码,但是它会对每一列进行排序,有没有办法在排序过程中保留一列。谢谢c#加载表单时如何对listview排序,c#,listview,sorting,methods,load,C#,Listview,Sorting,Methods,Load,我有一个包含3列(Map、From、To)的listview(lvMap),我正在尝试编写一个在表单加载后立即调用的方法。此方法应该查看listview项,并按升序仅按“Map”和“From”两列对它们进行排序,我不希望它对“to”列进行排序。我已经写了下面的代码,但是它会对每一列进行排序,有没有办法在排序过程中保留一列。谢谢 private void sortListViewOrder() { lvMappings.Sorting = SortOrder.Ascending;
private void sortListViewOrder()
{
lvMappings.Sorting = SortOrder.Ascending;
lvMappings.Sort();
}
我建议您参考以下MSDN文章,希望它能回答您的问题: 基本上,您需要创建一个ListViewColumnSorter实例,并将其添加到ListView控件中
从这里开始,文章将有足够的信息:)您必须使用
ListViewColumnSorter
进行操作。下面的KB链接提供了执行此操作的示例代码
您可以使用指定要排序的列
Create an instance of a ListView column sorter and assign it
// to the ListView control.
lvwColumnSorter = new ListViewColumnSorter();
this.listView1.ListViewItemSorter = lvwColumnSorter;
lvwColumnSorter.SortColumn = Column;
我需要ListView控件中的这个特性或函数。我在这里第一次看到的使用扩展类的建议。我试过了,它成功了,但直到现在我才知道如何轻松地做到这一点。请参阅此参考问题: 步骤1:在项目中创建(单独的)ControlExtensions类,并粘贴以下代码:
using System.Reflection;
using System.Windows.Forms;
namespace [YourNameSpace]
{
public static class ControlExtensions
{
public static void DoubleBuffering(this Control control, bool enable)
{
var method = typeof(Control).GetMethod("SetStyle", BindingFlags.Instance | BindingFlags.NonPublic);
method.Invoke(control, new object[] { ControlStyles.OptimizedDoubleBuffer, enable });
}
}
}
步骤2:在具有ListView的WinForms中定义以下内容:
private ListViewColumnSorter lvwColumnSorter = null;
初始化组件()后;第节,定义以下内容:
lvwColumnSorter = new ListViewColumnSorter();
this.lvwRunningProcesses.ListViewItemSorter = lvwColumnSorter;
lvwColumnSorter._SortModifier = ListViewColumnSorter.SortModifiers.SortByText;
步骤3:在表单加载事件中,在填充列表视图后添加以下行:
// Sort in ascending order Column 0
lvwColumnSorter.SortColumn = 0;
lvwColumnSorter.Order = SortOrder.Ascending;
this.lvwRunningProcesses.Sort();
就这样 嘿,谢谢,但这篇文章是基于是否列已点击。我不想非得单击该列对其项目进行排序。如果您想知道什么是
ListViewColumnSorter
,可以在页面底部找到它: