当ComboBox包含大量项目时,其下拉列表将变为可滚动。当用户调用此下拉菜单并移动鼠标光标以从底部进入下拉菜单的边界时,下拉菜单会立即向下滚动列表中的一个或多个项目(来自goobering:通过底部退出边界时也会发生边缘)。这种滚动不直观,因为从顶部进入边界时列表不会向上滚动。我们如何禁用自动滚动行为?在VisualStudio中,可以通过代码编辑器导航栏上的成员下拉列表(CTRL+F2)观察此行为。 最佳答案 解决这个问题的一种方法是使用行为(或者更确切地说是类似行为的附加属性)订阅ComboBoxItems的RequestBr
我在WPF中有一个ComboBox,我用了很多东西(它有一个自定义模板和一个自定义项模板)。我现在已经达到了它几乎按照我想要的方式工作的地步,除了当我输入ComboBox时它正在为我进行过滤,但只有假设我输入的内容以项目名称开头的过滤器组合框。例如,如果我在ComboBox中有一个名为“WindowsMediaPlayer”的项目,它只会在我开始输入“WindowsMedia...”时找到它,而如果我开始输入“MediaPlay...”。有没有办法解决?我可以在某处设置一个属性来告诉它搜索整个字符串而不是只使用StartsWith()吗?如果没有,让它自己完成这项工作的最佳方法是什么?
我的ComboBox项目集合中的项目很少,我想从此列表中选择一个项目并将其设置为默认项目-当应用程序启动时-此项目已经在组合框。我正在尝试类似的事情:SelectPrint11.SelectedIndex=2;但错误是:System.ArgumentOutOfRangeException:InvalidArgument=Valueof'2'isnotvalidfor'SelectedIndex'编辑:mylist中有3个项目,Printer1、Printer2、Printer3。全部添加到ComboBoxProperties->Items->Collection
目标:选择组合框下拉列表中的项目时发出事件。问题:但是,使用“SelectionChanged”时,如果用户选择的项目与当前正在选择的项目相同,则选择不会更改,因此不会触发此事件。问题:无论所选项目是否更改,我都可以使用哪些其他事件处理程序(或其他方式)来发出事件,只要鼠标单击该项目并且该项目是被选中。(澄清:问题是当再次选择相同的项目时如何触发“某事”。下拉列表中没有重复项。场景:第一次选择项目1,关闭下拉列表。然后再次打开下拉列表框并在触发某些功能时选择项目1。)解决方案:目前似乎没有直接的解决方案。但是根据每个单独的项目,可以有一些方法来解决它。(如果确实有好的方法,请更新)。谢
有没有人知道如何将ComboBox的内容宽度设置为自动调整大小我指的不是ComboBox本身,而是打开的内容。 最佳答案 不能直接使用。做个把戏首先遍历组合框的所有项目,通过将文本分配给标签来检查每个项目的宽度。然后,每次检查宽度,如果当前项的宽度大于之前的项,则更改最大宽度。intDropDownWidth(ComboBoxmyCombo){intmaxWidth=0;inttemp=0;Labellabel1=newLabel();foreach(varobjinmyCombo.Items){label1.Text=obj.To
我有一个使用ComboBox的C#表单。如何防止用户在C#中的ComboBox中手动输入文本?this.comboBoxType.Font=newSystem.Drawing.Font("Arial",15.75F);this.comboBoxType.FormattingEnabled=true;this.comboBoxType.Items.AddRange(newobject[]{"a","b","c"});this.comboBoxType.Location=newSystem.Drawing.Point(742,364);this.comboBoxType.Name="com
我想在后面的代码中用键/值数据填充组合框,我有这个:XAML:代码隐藏:usingSystem.Windows;usingSystem.Collections.Generic;namespaceTestCombo234{publicpartialclassWindow1:Window{publicWindow1(){InitializeComponent();}}publicstaticclassCollectionData{publicstaticDictionaryGetChoices(){Dictionarychoices=newDictionary();choices.Add(
我正在构建一个字符串,代码如下所示Stringstatus="Thestatusofmycomboboxis"+comboBoxTest.SelectedText我在VS2010中使用WinForm结果是这样的"Thestatusofmycomboboxis" 最佳答案 我想你想用Stringstatus="Thestatusofmycomboboxis"+comboBoxTest.Text来自MSDN的SelectedText属性Getsorsetsthetextthatisselectedintheeditableportion
我有一个似乎没有更新SelectedItem/SelectedValue的ComboBox。ComboBoxItemsSource绑定(bind)到ViewModel类上的一个属性,该类将一堆RAS电话簿条目列为CollectionView。然后我(在不同的时间)绑定(bind)了SelectedItem或SelectedValue到ViewModel的另一个属性。我在保存命令中添加了一个MessageBox来调试数据绑定(bind)设置的值,但SelectedItem/SelectedValue未设置绑定(bind)。ViewModel类看起来像这样:publicConnection
我想要一个“仅选择”ComboBox,它提供一个项目列表供用户选择。应在ComboBox控件的文本部分禁用键入。我最初用谷歌搜索发现了一个过于复杂的错误建议来捕获KeyPress事件。 最佳答案 要使ComboBox的文本部分不可编辑,请将DropDownStyle属性设置为“DropDownList”。ComboBox现在对用户基本上是只选择的。您可以在VisualStudio设计器或C#中执行此操作,如下所示:stateComboBox.DropDownStyle=ComboBoxStyle.DropDownList;链接到Co