[英]How to set combobox first element in winform application in c#
我是Winform应用程序的新手,在这里我使用的是Entity Framework,当我将值从sql表绑定到组合框时,我需要将第一个组合框项目设置为“请选择”,我该如何设置呢?
var qry = context.Tbl_EmployeeDetails.Where(x => x.IsDeleted == false).ToList();
if(qry!=null)
{
drpname.ValueMember = "RecordId";
drpname.DisplayMember = "Name";
drpname.DataSource = qry;
}
我如何将第一项设置为“请选择”并将值设置为“ 0”
Winform中的另一个建议是..当我将“编辑”,“删除”列设置为链接按钮时,如何在datagridview链接按钮列中设置值
您可以将该项目插入列表的开头。
码:
var items = db.Tbl_EmployeeDetails.Where(x => x.IsDeleted == false).ToList();
items.Insert(0,new Tbl_EmployeeDetail() { RecordId= 0, Name = "[Please Select an Item]" });
drpname.DropDownStyle = ComboBoxStyle.DropDownList; //optional
drpname.ValueMember = "RecordId";
drpname.DisplayMember = "Name";
drpname.DataSource = items;
drpname.SelectedIndex = 0;
截图:
注意
要在ComboBox
提示而不添加项目,请查看以下文章:
加载将为List<string>
var qry
,您需要执行以下操作
var qry = context.Tbl_EmployeeDetails.Where(x => x.IsDeleted == false).ToList();
if(qry!=null)
{
drpname.ValueMember = "RecordId";
drpname.DisplayMember = "Name";
drpname.DataSource = qry;
drpname.Items.Insert(0, "--Please Select--");
drpname.SelectedIndex = 0;
}
或者您可以轻松地将其添加到qry,因为您要返回数据ToList()
例如
var qry = context.Tbl_EmployeeDetails.Where(x => x.IsDeleted == false).ToList();
qry.Insert(0, "--Please Select--");
if(qry!=null)
{
drpname.ValueMember = "RecordId";
drpname.DisplayMember = "Name";
drpname.DataSource = qry;
drpname.SelectedIndex = 0;
}
如果将组合框绑定到数据源,则组合框不能包含其他项目。 您可以在此处选择以下几种方式:
不要将其绑定到数据源,即通过遍历查询中的项目并将它们分别添加到组合框中,从数据集中手动填充它; 这将使您有机会首先添加“请选择”项。 这可能很复杂,因为实际上您必须将字符串名称添加为组合框中的项目,然后可以将项目的Tag
属性设置为实际的查询行,以便以后引用它。
包括从查询中返回的显示项目为“请选择”的假项目。 注意,我不推荐这种方法,因为您正在允许表示逻辑泄漏到数据/业务层。
使用第三方控件而不是Win窗体组合框。 我使用过Infragistics,当没有选择任何内容时,它们可以显示不在列表中的“建议”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.