0

リストボックスで項目が選択されているかどうかを確認するにはどうすればよいですか? だから私はボタンを削除していますが、リストボックスで項目が選択されている場合にのみそのボタンを実行したいです。C#の背後にあるasp.netコードを使用しています。この検証がサーバー側で行われることをお勧めします。

乾杯..

4

6 に答える 6

1

実際、SelectedIndexはゼロベースであるため、チェックは次のようにする必要があります。

if(listBox.SelectedIndex> = 0)..。

于 2008-11-07T03:49:31.943 に答える
1

ボタン クリックのコールバックで、リスト ボックスの選択されたインデックスが 0 以上かどうかを確認します。

protected void removeButton_Click( object sender, EventArgs e )
{
    if (listBox.SelectedIndex >= 0)
    {
        listBox.Items.RemoveAt( listBox.SelectedIndex );
    }
}
于 2008-11-07T03:28:04.513 に答える
1

複数のアイテムを削除するには、アイテムを逆に解析する必要があります。

protected void removeButton_Click(object sender, EventArgs e)
{
    for (int i = listBox.Items.Count - 1; i >= 0; i--)
        listBox.Items.RemoveAt(i);
}

通常どおりに解析すると、結果はまったく予期しないものになります。例: アイテム 0 を削除すると、アイテム 1 が新しいアイテム 0 になります。アイテム 1 であると信じているものを削除しようとすると、実際にはアイテム 2 として表示されているものが削除されます。

于 2008-11-07T08:23:34.073 に答える
0

問題の説明と、 ListBox.SelectedIndex が何も選択されていない場合に -1 を返すという事実に基づいて、早期に解決するアプローチを使用することをお勧めします。

tvanfosson のボタン イベント ハンドラ コードの一部を借りるためです。

protected void removeButton_Click( object sender, EventArgs e )
{
    if (listBox.SelectedIndex < 0) { return; }
    // do whatever you wish to here to remove the list item 
}
于 2008-11-07T04:27:34.660 に答える
0

コレクションからアイテムを削除するには、逆方向にループする必要があります。

for (int i=lbSrc.Items.Count - 1, i>=0, i--)
{
   //code to check the selected state and remove the item
}
于 2008-11-07T08:22:24.263 に答える
-1
for (int i = 0; i < lbSrc.Items.Count; i++)
{
    if (lbSrc.Items[i].Selected == true)
    {
        lbSrc.Items.RemoveAt(lbSrc.SelectedIndex);
    }
}

これが私が思いついたものです。

于 2008-11-07T07:52:36.400 に答える