gpt4 book ai didi

c# - ComboBox 更改元素的顺序

转载 作者:太空宇宙 更新时间:2023-11-03 13:38:47 26 4
gpt4 key购买 nike

我有一些实现任务的想法,即更改出现在组合框下拉菜单中的项目的顺序。截至目前,我正在使用打开文件对话框的多选属性将给定文件填充到组合框中。截至目前,项目会自动按字母顺序排序。理想情况下,对于我正在完成的应用程序类型,这不是用户想要或需要的。

下面是我的一些问题/想法:

1) 也许更简单的想法不是让文件按字母顺序排序,而是让它们按点击顺序排序?这可能吗?

2) 在右侧下拉菜单的每个项目上,添加一个向上/向下的小箭头,因此当单击时项目的顺序会发生变化。我可以很容易地实现这个想法的逻辑,但我不太确定如何添加视觉效果。

3) 拖放..我知道这在文本框中更容易,但是有没有一种简单的方法可以通过下拉菜单来完成它。

4) 也许是简单的 Ctrl+Up+Click/Ctrl+Down+Click。我觉得我可以实现这个,但我仍然不确定我是否会这样做正确。

我向 stackoverflow 社区寻求建议,因为很明显,你们中的许多人在 C# 方面的经验都比我丰富,所以如果我能节省一些时间和精力,那将真正有助于完成我的任务。显然我不是要代码,只是一些建议。谢谢。

最佳答案

我总是会使用底层集合,例如 List 或 List。更改顺序时,您首先更改集合,然后将列表分配给您的 UI 控件。

要在运行时更改,您可以通过删除和重新添加项目来“刷新”控件。在我的示例中,我在 Winforms 项目中使用了列表框:

//Default fill
List<string> Values = new List<string>() { "one", "two", "three", "four" };
Values.ForEach(i => listBox1.Items.Add(i));
//After a while, we sort the list
Values.Sort();
listBox1.Items.Clear();
Values.ForEach(i => listBox1.Items.Add(i));

或者,通过数据源:

//Default fill
Values = new List<string>() { "one", "two", "three", "four" };
listBox1.DataSource = Values;
//After a while, we sort the list
Values.Sort();
listBox1.DataSource = null;
listBox1.DataSource = Values;

关于c# - ComboBox 更改元素的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17835963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com