假设我们有一个DataSource绑定到Database的集合.当然没有空项.如何将void项添加到ComboBox中,以便在第一次加载用户时会看到一个空字符串.我不想在Collection中添加一个dummy/void对象.最适合XAML.有什么建议?
我有一个组合框,里面有数百个项目.用户必须能够在组合框中键入文本.当用户键入文本时,必须选择或列出以键入值开头的项目.用户必须能够连续输入.我的ComboBox DropDownStyle是DropDownList
例如:通过键入在comboBox中选择名称时,它只允许一个字母.因此,如果我输入"A",它将跳转到以"A"开头的第一个字母.当我连续输入组合框时,所选项目根据当前按键变化.如果我按"As",组合框查看以"s"开头的项目.
我正在使用Win Forms.
提前致谢..
我的谷歌技能让我失望.任何人都听说过像WPF这样的控件.我试图让它看起来像这样(winforms截图).
public class ComboboxItem {
public string Text { get; set; }
public string Value { get; set; }
public override string ToString() { return Text; }
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int selectedIndex = comboBox1.SelectedIndex;
int selecteVal = (int)comboBox1.SelectedValue;
ComboboxItem selectedCar = (ComboboxItem)comboBox1.SelectedItem;
MessageBox.Show(String.Format("Index: [{0}] CarName={1}; Value={2}", selectedIndex, selectedCar.Text, selecteVal));
}
Run Code Online (Sandbox Code Playgroud)
我正在添加它们:
ComboboxItem item = new ComboboxItem();
item.Text = cd.Name;
item.Value = cd.ID;
this.comboBox1.Items.Add(item);
Run Code Online (Sandbox Code Playgroud)
我一直得到一个NullReferenceExeption,不知道为什么.文本似乎显示得很好.
我有一个ListView,它包含两种类型的对象,单个和多个.单个是普通的TextBlock,而倍数是带有项目的ComboBox.
我正在尝试将ComboBox中的项目分组而没有成功.可能吗?或者我应该采取不同的方法?
我想要实现的目标:
[ComboBox v]
[Header ]
[ Item]
[ Item]
[Header ]
[ Item]
Run Code Online (Sandbox Code Playgroud) 在winforms中,您需要单击组合框两次以正确激活它 - 第一次聚焦它,第二次实际获取下拉列表.
如何更改此行为以便在第一次单击时激活?
这适用于DATAGRIDVIEW组合框.
我需要让用户从下拉列表中选择一个项目,但也允许他们输入任何文本,即使它与列表中的项目不匹配.如何在包含HTML和Javascript的网页上实现此目的?
该select字段不允许用户输入文本,input文本字段不显示首选替代项.
如果用户打开下拉列表,则必须显示所有项目,因此它不能是仅显示匹配项目的简单自动完成.
试图学习如何将对象绑定到各种类型的控件.在这个例子中,我想让我的对象中的示例数据出现在ComboBox中.代码运行,但出现的不是值(David,Helen,Joe)是文本"TheProtect.UserControls.Client")
XAML:(ucDataBindingObject.xaml)
<UserControl x:Class="TheProject.UserControls.ucDataBindingObject"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Width="Auto"
Height="Auto"
mc:Ignorable="d">
<Grid Width="130"
Height="240"
Margin="0">
<ComboBox Width="310"
HorizontalAlignment="Left"
VerticalAlignment="Top"
ItemsSource="{Binding Path=Clients}" />
</Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
C#:ucDataBindingObject.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Controls;
namespace TheProject.UserControls
{
public partial class ucDataBindingObject : UserControl
{
public List<Client> Clients { get; set; }
public ucDataBindingObject()
{
Clients = new List<Client>();
Clients.Add(new Client(1, "David")); // sample data
Clients.Add(new Client(2, "Helen"));
Clients.Add(new Client(3, "Joe"));
InitializeComponent();
this.DataContext = this;
}
}
Run Code Online (Sandbox Code Playgroud)
C#Client.cs
using System;
using System.Linq; …Run Code Online (Sandbox Code Playgroud) 我有一些代码将串行端口加载到一个组合框中:
List<String> tList = new List<String>();
comboBoxComPort.Items.Clear();
foreach (string s in SerialPort.GetPortNames())
{
tList.Add(s);
}
tList.Sort();
comboBoxComPort.Items.Add("Select COM port...");
comboBoxComPort.Items.AddRange(tList.ToArray());
comboBoxComPort.SelectedIndex = 0;
Run Code Online (Sandbox Code Playgroud)
我想将端口描述(类似于设备管理器中的COM端口所示)添加到列表中,并对列表中位于索引0之后的项进行排序(已解决:请参阅上面的代码段).有没有人有任何关于添加端口描述的建议?我使用的是Microsoft Visual C#2008 Express Edition(.NET 2.0).您可能有任何想法,将不胜感激.谢谢.
我在ComboBox这个代码的winforms应用程序上有一个:
comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
DataTable t = new DataTable();
t.Columns.Add("ID", typeof(int));
t.Columns.Add("Display", typeof(string));
for (int i = 1; i < 2000; i++)
{
t.Rows.Add(i, i.ToString("N0"));
}
comboBox1.DataSource = t;
comboBox1.ValueMember = "ID";
comboBox1.DisplayMember = "Display";
Run Code Online (Sandbox Code Playgroud)
然后,当窗口打开时,我按照以下步骤操作:
ComboBox下拉按钮 - 显示项目列表并选择文本ComboBox这是一个错误ComboBox吗?如果重要的话,我正在使用Windows 7.我是以ComboBox某种方式配置错误的?
另请注意,使用KEYBOARD会使用自动完成下拉菜单.所以上/下箭头键正在使用前窗,但鼠标正在使用后窗.
combobox ×10
c# ×5
wpf ×4
winforms ×3
.net ×1
autocomplete ×1
data-binding ×1
datagridview ×1
html ×1
javascript ×1
mvvm ×1
object ×1
selecteditem ×1
serial-port ×1
sorting ×1
xaml ×1