ListView追加/参照/削除(C#/VB.NET)

来源:互联网 发布:多宝视训练软件价格 编辑:程序博客网 时间:2024/04/30 18:58


ListView追加/参照/削除(C#/VB.NET)

2010年06月19日

ListViewに行追加/行変更(行取得)/行削除するサンプル(ソース/コード)です。
忘れやすいのでメモって置きます。

全ての行(項目)を削除する時は、ListView1.Items.Clear()を使用します。

' -----------------------------------------------------------
' ListViewの追加/変更(取得)/削除のサンプル(VB.NET/VS2005)
Private Sub Form1_Load( _
    ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load

    ' ヘッダー初期化
    ListView1.Items.Clear()
    ListView1.FullRowSelect = True
    ListView1.GridLines = True
    ListView1.View = View.Details
    Dim column1 As ColumnHeader = New ColumnHeader
    Dim column2 As ColumnHeader = New ColumnHeader
    Dim column3 As ColumnHeader = New ColumnHeader
    column1.Text = "Hour"
    column2.Text = "Minute"
    column3.Text = "Second"
    Dim colHeaderRegValue() As ColumnHeader = _
      {column1, column2, column3}
    ListView1.Columns.AddRange(colHeaderRegValue)
End Sub

Private Sub Button1_Click( _
    ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click

    ' 選択行特定
    Dim intRow As Integer = -1
    If ListView1.SelectedItems.Count > 0 Then
        intRow = ListView1.SelectedItems(0).Index
    End If

    If intRow < 0 Then
        ' 行追加
        Dim citm(2) As String
        citm(0) = DateTime.Now.Hour
        citm(1) = DateTime.Now.Minute
        citm(2) = DateTime.Now.Second
        Dim ritm As ListViewItem = New ListViewItem(citm)
        ListView1.Items.Add(ritm)
    Else
        ' 行挿入
        Dim citm(2) As String
        citm(0) = DateTime.Now.Hour
        citm(1) = DateTime.Now.Minute
        citm(2) = DateTime.Now.Second
        Dim ritm As ListViewItem = New ListViewItem(citm)
        ListView1.Items.Insert(intRow, ritm)
        ListView1.Select()
    End If
End Sub

Private Sub Button2_Click( _
    ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button2.Click

    ' 選択行特定
    Dim intRow As Integer = -1
    If ListView1.SelectedItems.Count > 0 Then
        intRow = ListView1.SelectedItems(0).Index
    End If
    If intRow < 0 Then Return

    ' 選択行更新
    Dim citm(2) As String
    citm(0) = DateTime.Now.Hour
    citm(1) = DateTime.Now.Minute
    citm(2) = DateTime.Now.Second
    Dim ritm As ListViewItem = New ListViewItem(citm)
    ListView1.Items(intRow) = ritm

    ' 再選択
    If ListView1.Items.Count > intRow Then
        ListView1.Items(intRow).Selected = True
        ListView1.Select()
    End If
End Sub

Private Sub Button3_Click( _
    ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button3.Click

    ' 選択行特定
    Dim intRow As Integer = -1
    If ListView1.SelectedItems.Count > 0 Then
        intRow = ListView1.SelectedItems(0).Index
    End If
    If intRow < 0 Then Return

    ' 選択行削除
    ListView1.Items.RemoveAt(intRow)

    ' 再選択
    If ListView1.Items.Count > intRow Then
        ListView1.Items(intRow).Selected = True
        ListView1.Select()
    End If
End Sub

Private Sub Button4_Click( _
    ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button4.Click

    ' 選択行特定
    Dim intRow As Integer = -1
    If ListView1.SelectedItems.Count > 0 Then
        intRow = ListView1.SelectedItems(0).Index
    End If
    If intRow < 0 Then Return

    ' 選択行参照
    System.Diagnostics.Debug.WriteLine( _
        ListView1.Items(intRow).SubItems(0).Text & ":" & _
        ListView1.Items(intRow).SubItems(1).Text & ":" & _
        ListView1.Items(intRow).SubItems(2).Text)

    ' 再選択
    If ListView1.Items.Count > intRow Then
        ListView1.Items(intRow).Selected = True
        ListView1.Select()
    End If
End Sub
' -----------------------------------------------------------

// ----------------------------------------------------------
// ListViewの追加/変更(取得)/削除のサンプル(C#.NET/VS2005)
private void Form1_Load(object sender, EventArgs e)
{
    // ヘッダー初期化
    listView1.Items.Clear();
    listView1.FullRowSelect = true;
    listView1.GridLines = true;
    listView1.View = View.Details;
    ColumnHeader column1 = new ColumnHeader();
    ColumnHeader column2 = new ColumnHeader();
    ColumnHeader column3 = new ColumnHeader();
    column1.Text = "Hour";
    column2.Text = "Minute";
    column3.Text = "Second";
    ColumnHeader[] colHeaderRegValue = new ColumnHeader[]
      {column1, column2, column3};
    listView1.Columns.AddRange(colHeaderRegValue);
}

private void button1_Click(object sender, EventArgs e)
{
    // 選択行特定
    int intRow  = -1;
    if (listView1.SelectedItems.Count > 0)
    {
        intRow = listView1.SelectedItems[0].Index;
    }

    if (intRow < 0)
    {
        // 行追加
        String[] citm = new String[3];
        citm[0] = DateTime.Now.Hour.ToString();
        citm[1] = DateTime.Now.Minute.ToString();
        citm[2] = DateTime.Now.Second.ToString();
        ListViewItem ritm = new ListViewItem(citm);
        listView1.Items.Add(ritm);
    }
    else
    {
        // 行挿入
        String[] citm = new String[3];
        citm[0] = DateTime.Now.Hour.ToString();
        citm[1] = DateTime.Now.Minute.ToString();
        citm[2] = DateTime.Now.Second.ToString();
        ListViewItem ritm = new ListViewItem(citm);
        listView1.Items.Insert(intRow, ritm);
        listView1.Select();
    }
}

private void button2_Click(object sender, EventArgs e)
{
    // 選択行特定
    int intRow = -1;
    if (listView1.SelectedItems.Count > 0)
    {
        intRow = listView1.SelectedItems[0].Index;
    }
    if (intRow < 0) return;

    // 選択行更新
    String[] citm = new String[3];
    citm[0] = DateTime.Now.Hour.ToString();
    citm[1] = DateTime.Now.Minute.ToString();
    citm[2] = DateTime.Now.Second.ToString();
    ListViewItem ritm = new ListViewItem(citm);
    listView1.Items[intRow] = ritm;

    // 再選択
    if (listView1.Items.Count > intRow)
    {
        listView1.Items[intRow].Selected = true;
        listView1.Select();
    }
}

private void button3_Click(object sender, EventArgs e)
{
    // 選択行特定
    int intRow = -1;
    if (listView1.SelectedItems.Count > 0)
    {
        intRow = listView1.SelectedItems[0].Index;
    }
    if (intRow < 0) return;

    // 選択行削除
    listView1.Items.RemoveAt(intRow);

    // 再選択
    if (listView1.Items.Count > intRow)
    {
        listView1.Items[intRow].Selected = true;
        listView1.Select();
    }
}

private void button4_Click(object sender, EventArgs e)
{
    // 選択行特定
    int intRow = -1;
    if (listView1.SelectedItems.Count > 0)
    {
        intRow = listView1.SelectedItems[0].Index;
    }
    if (intRow < 0) return;

    // 選択行参照
    System.Diagnostics.Debug.WriteLine(
        listView1.Items[intRow].SubItems[0].Text + ":" +
        listView1.Items[intRow].SubItems[1].Text + ":" +
        listView1.Items[intRow].SubItems[2].Text);

    // 再選択
    if (listView1.Items.Count > intRow)
    {
        listView1.Items[intRow].Selected = true;
        listView1.Select();
    }
}
// ----------------------------------------------------------
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孕妇尿酮体3是怎么办 孕期32周酮体高怎么办 孕妇36周酮体高怎么办 怀孕酮体4个加号怎么办 孕吐酮体4个加号怎么办 怀孕尿酮体3是怎么办 孕后期尿酮体高怎么办 糖尿病尿酮体3是怎么办 孕39加6没反应怎么办 孕33周感冒咳嗽怎么办 孕33周感冒鼻塞怎么办 孕29周感冒了怎么办 孕35周感冒鼻塞怎么办 孕33周感冒头疼怎么办 胆囊炎和胆结石同时得了该怎么办 体检时来例假了怎么办 梦幻西游没蓝了怎么办 u盘文件删除不了怎么办 魔兽争霸3没路了怎么办 独立显卡玩lol卡怎么办 住6楼发生地震怎么办 地震来了住高层怎么办 拆了点剪力墙怎么办 地震后房子塌了怎么办 房子住70年以后怎么办 房子住满70年后怎么办 房子的年限过了怎么办 配重墙已经拆了怎么办 把配重墙拆了怎么办啊 睡在潮湿的环境怎么办 剪力墙开了门洞怎么办 承重墙开了横槽怎么办 剪力墙拆了一点怎么办 买的楼房70年后怎么办 老小区成危房了怎么办 地震来了怎么办教案ppt 地震来了怎么办手抄报 地震来了在家里怎么办 脸上有黑头毛孔又粗怎么办 17岁看起来显老怎么办 所有证件都丢了怎么办