我有一个Winforms应用程序,它有一个可以选择的值列表框。我希望选定的值在编辑表单上显示为选中状态。这是加载代码:
private void LoadListBox()
{
DataTable dt = new DataTable();
string[] names = new string[] { "UID1", "UID2", "UID3","UID4" };
dt.Columns.Add("Units", typeof(string));
dt.Columns.Add("Value", typeof(int));
int count = 1;
foreach (string value in names)
{
DataRow drRow = dt.NewRow();
drRow["Units"] = value;
drRow["Value"] = count;
count++;
dt.Rows.Add(drRow);
}
listBox1.DisplayMember = "Units";
listBox1.ValueMember = "Value";
listBox1.DataSource = dt;
}
如果他们选择UID1
和UID2
,则会将其1
,2
存储在数据库中。
如果用户点击了修改按钮,则UID1
,UID2
应为所选值,但应加载所有值。
当点击edit
按钮时,如何确保所选内容显示为已选择?
答案 0 :(得分:2)
枚举每个列表框项目,并根据您的规则将其设置为选中状态:
for (int index = 0; index < listBox1.Items.Count; index++ )
{
Object o = (int)listBox1.Items[index];
if ( /* criteria you want here */ )
{
listBox1.SetSelected(index, true);
}
}
答案 1 :(得分:0)
在回发期间保留选定的值,除非您在回发事件中设置数据源,因此“覆盖”它。
所以在你的代码中只需要这样的if
语句:
if (!Page.IsPostBack)
LoadListBox();
击> <击> 撞击>
抱歉,以为是ASP.NET - 与WinForms环境无关。其他答案已经满足您的需求。 :)
答案 2 :(得分:0)
尝试SelectedItems.Add功能。 您可以将所需的每个项目添加到当前选择中。