C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■93825 / )  Re[1]: ListViewの選択行に空欄があった場合の処理
□投稿者/ りんく (8回)-(2020/02/07(Fri) 16:35:24)
No93821 (もぐら さん) に返信
Formsですよね?
Forms久しぶりなので間違っていたら申し訳ありません。

> Listviewで選択している行の一番左の列に空欄があった場合にメッセージボックスを表示させたいです。

こういうことでしょうか?
if(string.IsNullOrEmpty(listView1.SelectedItems[0].SubItems[0].Text))
{
    MessageBox.Show("空欄!");
}

ちなみに、載せていただいたコードを実行すると
フォーカス選択が正しくできませんでした。
null チェックなどもないので、未選択の状態でボタンを押すと例外になります。

少し変えて確認したコードが以下です。
private void Button1_Click(object sender, EventArgs e)
{
    if (listView1.SelectedItems[0] != null)
    {
        if (listView1.SelectedItems[0].SubItems[0] != null &&
            string.IsNullOrEmpty(listView1.SelectedItems[0].SubItems[0].Text))
        {
            MessageBox.Show("選択している行の一番左が空欄!");
        }
        int index = listView1.SelectedItems[0].Index;
        int nextIndex = index + 1;
        if (nextIndex < listView1.Items.Count)
        {
            listView1.Items[index].Selected = false;
            listView1.Items[index].Focused = false;
            listView1.Items[nextIndex].Selected = true;
            listView1.Items[nextIndex].Focused = true;
            listView1.Focus();
            listView1.Select();
            listView1.EnsureVisible(nextIndex);
        }
    }
}

返信 編集キー/


管理者用

- Child Tree -