C# 如何检查ListBox的选定值是否未在C中选定?

C# 如何检查ListBox的选定值是否未在C中选定?,c#,asp.net,drop-down-menu,validation,C#,Asp.net,Drop Down Menu,Validation,此代码将显示列表框中的选定值。例如,如果我选择项目1,我将得到以下输出:您已选择项目1 但若我并没有选择任何东西并点击提交按钮,我会得到:Youhaveselected 如果您没有选择任何内容,我需要什么使其显示。请至少选择一项 更新:我正在使用ASP.NET WebForms。更新: 下面的答案实际上是不正确的,留作历史记录。访问SelectedIndex属性后,如果未选择任何内容,列表将立即选择第一项,并返回零 因此,剩下的唯一选择就是在列表的第一个位置设置某种虚拟项,并检查Selected

此代码将显示列表框中的选定值。例如,如果我选择项目1,我将得到以下输出:您已选择项目1

但若我并没有选择任何东西并点击提交按钮,我会得到:Youhaveselected

如果您没有选择任何内容,我需要什么使其显示。请至少选择一项

更新:我正在使用ASP.NET WebForms。

更新: 下面的答案实际上是不正确的,留作历史记录。访问SelectedIndex属性后,如果未选择任何内容,列表将立即选择第一项,并返回零

因此,剩下的唯一选择就是在列表的第一个位置设置某种虚拟项,并检查SelectedIndex==0

然而,上述情况仅适用于DropDownList。从ListControl派生的其他控件,即ListBox或RadioButtonList将正确显示SelectedIndex==-1

下面是错误的答案: 检查SelectedIndex属性。如果未选择任何内容,则其值为-1

if ( DropDownList1.SelectedIndex < 0 )
{
    Label1.Text = "You have not selected anything";
}
else
{
    Label1.Text = "You have selected " + DropDownList1.SelectedValue;
}
小心点!:

使用SelectedIndex属性可以 以编程方式指定或确定 中所选项目的索引 下拉列表控件。一项是 始终在下拉列表中选择 控制您无法清除该文件 从列表中的每个项目中进行选择 同时,


哦,好了。所以它必须小于0。我尝试了0和null,但都不起作用。谢谢@萨哈特:这个答案实际上是不正确的,正如我刚才通过观察反射器发现的那样。请查看我的更新以获得正确答案。我明白你的意思,但它在这里与你第一次发布的代码一起工作。这表明你没有选择任何东西,正如我所希望的那样。也许这是ASP.NET 4.0的新功能?嗯,我实际上也在看ASP.NET 4.0。也许你有其他类型的控件,而不是DropDownList?我想我使用名为DropDownList 1的列表框控件已经把包括我自己在内的所有人都弄糊涂了。这就是为什么ListBox可能允许我使用该代码的原因。
if ( DropDownList1.SelectedIndex < 0 )
{
    Label1.Text = "You have not selected anything";
}
else
{
    Label1.Text = "You have selected " + DropDownList1.SelectedValue;
}