我正在编写一个Winform UI,用户必须在其中选择一个客户。 (由于我无法控制的原因,我仅限于使用下拉列表,文本字段,复选框,无线电按钮的用户界面-i.e.没有花哨的特殊UI控件)
答案 0 :(得分:0)
其他技巧:
我将ComboBox和TextBox结合起来(这是你的文本域吗?或者你的意思是只读标签?),因此用户可以键入一些首字母,ComboBox将显示以这些字母开头的所有条目。在完全匹配的情况下,它甚至可以跳过ComboBox的使用并加快速度。
答案 1 :(得分:0)
Tanascious的建议主要是在正确的轨道上,但我不认为你没有两个组成部分。我做了任何C#开发已经有一段时间了,但是如果我没记错的话,单个组合框(listbox?)非常适合在数百个条目中进行选择,因为它支持按类型查找导航,即如果名称为用户正在寻找的是“Doe,John”,在选择组件时键入“do”将在几乎所有情况下将用户带入几个条目中,大部分时间用于确切的用户。在某个公共网页上,一切都需要点击咔嗒一声,这将不是最优的,但对于每天使用此界面工作的用户来说,通常没问题。
答案 2 :(得分:0)
我认为在确定gui应该如何工作之前你必须先思考一两次,但是如果你真的想要想出一些想法,那么你可以按照以下方式做点什么:
步骤1,创建存储桶:
步骤2,确定桶的“名称”(“Adf-B”等):
像这样:
bucket[i].Left = bucket[i].Names.First().Substring(0, CharsNeeded(bucket[i].Names.First(), bucket[i-1].Names.Last()));
bucket[i].Right = bucket[i].Names.Last().Substring(0, CharsNeeded(bucket[i].Names.Last(), bucket[i+1].Names.First()));
CharsNeeded可以像这样实现:
int CharsNeeded(string str1, string str2)
{
int i=0;
while (i < str1.Length && i < str2.Length && str1[i] == str2[i])
i++;
return i + 1;
}
另外,请注意边缘情况,因为我没有检查bucket-array上的索引超出范围。