1. 程式人生 > >C#窗體控制元件之listview資料操作

C#窗體控制元件之listview資料操作

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            radioButton1.Checked = true;
            foreach (ListViewGroup item in listView1.Groups)
            {
                cmbGrade.Items.Add(item.Header);
            }
            cmbGrade.SelectedIndex = 0;
           
            picbox.Image = imageList2.Images[imNum];


        }
        int imNum = 0;
        private void splitContainer2_Panel1_Paint(object sender, PaintEventArgs e)
        {
            
        }


        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {


        }


        private void 檢視大圖ToolStripMenuItem_Click(object sender, EventArgs e)
        {


        }


        private void 大圖ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            listView1.View = View.LargeIcon;


        }


        private void 小圖ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            listView1.View = View.SmallIcon;
        }


        private void 列表ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            listView1.View = View.List;
        }


        private void 平鋪ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            listView1.View = View.Tile;
        }


        private void 詳細ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            listView1.View = View.Details;
        }


        private void label3_Click(object sender, EventArgs e)
        {


        }


        private void button1_Click(object sender, EventArgs e)
        {
            imNum--;
            if (imNum==-1)
            {
                imNum = imageList2.Images.Count-1;
            }
            picbox.Image = imageList2.Images[imNum];
        }


        private void button2_Click(object sender, EventArgs e)
        {
             imNum++;
            if (imNum==imageList2.Images.Count)
            {
                imNum =0;
            }
            picbox.Image = imageList2.Images[imNum];
        }


        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            OpenFileDialog op = new OpenFileDialog();
            op.InitialDirectory = "d:\\";
            op.Filter = "圖片(*.jpg;*.bmp;*.png;*.jpeg)|*.jpg;*.bmp;*.png;*.jpeg";
            op.FilterIndex = 1;
            op.RestoreDirectory = true;
            if (op.ShowDialog()==DialogResult.OK)
            {
                
                    string fileName= op.FileName;
                //image是所有圖片的父類;還是一個抽象類
                Image img=new Bitmap(fileName);
                imageList2.Images.Add(img);
                imageList1.Images.Add(img);
                imNum=imageList2.Images.Count-1;
                picbox.Image=imageList2.Images[imNum];
            }
        }


        private void button3_Click(object sender, EventArgs e)
        {
            string name = tbxName.Text;




            string sex;
            if (radioButton1.Checked)
            {
                sex = radioButton1.Text;
            }
            else
            {
                sex = radioButton2.Text;
            }
            string age = tbxAge.Text;
            int gradeIndex = cmbGrade.SelectedIndex;
            Image pic = picbox.Image;
            //listView1.Items.Add(
            ListViewItem lvw = new ListViewItem();
            lvw.Text = name;
            lvw.ImageIndex = imNum;
            //lvw.SubItems(
            lvw.SubItems.Add(sex);
            lvw.SubItems.Add(age);
            lvw.Group=listView1.Groups[gradeIndex];
            listView1.Items.Add(lvw);
           
            
   }


        private void Form2_Resize(object sender, EventArgs e)
        {
            listView1.Columns[0].Width = (int)(0.3 * listView1.Width);
            listView1.Columns[1].Width = (int)(0.3 * listView1.Width);
            listView1.Columns[2].Width = (int)(0.3 * listView1.Width);
        }


        private void 刪除選中項ToolStripMenuItem_Click(object sender, EventArgs e)
        {
           if (listView1.SelectedItems.Count>0)
       {
               //刪除操作,在操作前要做提示,以防止誤操作
                DialogResult dr =
                    MessageBox.Show("確定刪除?", "提示", MessageBoxButtons.YesNo);
                if (dr!=DialogResult.Yes)
                {
                    return;
                }
             
                foreach (ListViewItem item in listView1.SelectedItems)
                {
                    listView1.Items.Remove(item);
                }
                MessageBox.Show("刪除成功!");
       }
           else
           {
               MessageBox.Show("請先選擇!");
           }
        }
        int index;
        private void 修改選中項ToolStripMenuItem_Click(object sender, EventArgs e)
        {


            //每個控制元件上都可以用tag屬性來存放值,tag上的值不會在介面顯示
            //btnChanes.Tag = lvw.Index;
            ListViewItem lvw = listView1.SelectedItems[0];
            this.index = lvw.Index;
            if (lvw.SubItems[1].Text==radioButton1.Text)
            {
                radioButton1.Checked = true;
                
            }
            if (lvw.SubItems[1].Text==radioButton2.Text)
            {
                radioButton2.Checked = true;
            }
            tbxName.Text = lvw.Text;
            // lvw.SubItems[2]    SubItems[2]索引第一個預設為name
            tbxAge.Text = lvw.SubItems[2].Text;
            cmbGrade.SelectedItem = lvw.Group.Header;
            picbox.Image=imageList2.Images[lvw.ImageIndex];
           
        }


        private void btnChanes_Click(object sender, EventArgs e)
        {
            string name = tbxName.Text;




            string sex;
            if (radioButton1.Checked)
            {
                sex = radioButton1.Text;
            }
            else
            {
                sex = radioButton2.Text;
            }
            string age = tbxAge.Text;
            int gradeIndex = cmbGrade.SelectedIndex;
            Image pic = picbox.Image;
            listView1.Items[index].Text = name;
            listView1.Items[index].ImageIndex = imNum;
            listView1.Items[index].Group = listView1.Groups[gradeIndex];
            listView1.Items[index].SubItems[1].Text = sex;
            listView1.Items[index].SubItems[2].Text = age;
            MessageBox.Show("修改成功!");
            


            
        }
            
    }

}