• winform


      1 using System;
      2 using System.Collections.Generic;
      3 using System.ComponentModel;
      4 using System.Data;
      5 using System.Drawing;
      6 using System.Linq;
      7 using System.Text;
      8 using System.Threading.Tasks;
      9 using System.Windows.Forms;
     10 
     11 namespace WinApp02_ListBox
     12 {
     13     public partial class Form1 : Form
     14     {
     15         public Form1()
     16         {
     17             InitializeComponent();
     18         }
     19         //
     20         // 加载窗口
     21         private void Form1_Load(object sender, EventArgs e)
     22         {
     23             // 绑定列表数据
     24             BindListData();
     25         }
     26         /// <summary>
     27         /// 绑定列表数据
     28         /// </summary>
     29         private void BindListData()
     30         {
     31             // 绑定多个图书信息实例
     32             //List<Book> lstBook = new List<Book>()
     33             //{ 
     34             //    new Book() { ID = 1, Title = "ASP.NET", Price = 36.50m } ,
     35             //    new Book() { ID = 2, Title = "C#本质论", Price = 55.80m } ,
     36             //    new Book() { ID = 3, Title = "CRL", Price = 87.00m } ,
     37             //    new Book() { ID = 4, Title = "ADO.NET", Price = 42.50m } ,
     38             //    new Book() { ID = 5, Title = "Python", Price = 38.40m } 
     39             //};
     40 
     41             // 将lstBook中的数据遍历出来并存储到listBox1中.
     42             //foreach (Book book in lstBook)
     43             //{
     44             //    // 自定义类型或非字符串类型,默认会显示其完全限定名(命名空间.类名: WinApp02_ListBox.Book)
     45             //    // 所以必须重写Book类的ToString()方法
     46             //    listBox1.Items.Add(book);
     47             //}
     48 
     49             List<Book> lstBook = new List<Book>();
     50             lstBook.Add(new Book() { ID = 1, Title = "ASP.NET", Price = 36.50m });
     51             lstBook.Add(new Book() { ID = 2, Title = "C#本质论", Price = 55.80m });
     52             lstBook.Add(new Book() { ID = 3, Title = "CRL", Price = 87.00m });
     53             lstBook.Add(new Book() { ID = 4, Title = "ADO.NET", Price = 42.50m });
     54             lstBook.Add(new Book() { ID = 5, Title = "Python", Price = 38.40m });
     55 
     56             // 指定数据源一次性绑定数据(同样,必须重写ToString()方法,否则即显示【命名空间.类名】
     57             listBox1.DataSource = lstBook;
     58             // 将对象属性作为列表显示的文字; 即Book.Title
     59             listBox1.DisplayMember = "Title"; 
     60             // 指定对象的值属性作为"值"字段,可以用ID或者Price;
     61             listBox1.ValueMember = "ID";
     62            // listBox1.ValueMember = "Price";
     63 
     64         }
     65 
     66         private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
     67         {
     68             //GetSelectedInfo_Foreach();
     69             GetSelectedInfo_Linq();
     70 
     71         }
     72         /// 获取选中的信息, foreach写法
     73         /// 
     74         private void GetSelectedInfo_Foreach()
     75         {
     76             if (-1 == listBox1.SelectedIndex)
     77             {
     78                 MessageBox.Show("当前未选中任何项");
     79                 return;
     80             }
     81 
     82             // 获取当前所有选中项的索引
     83             string index = "";
     84             foreach(int i in listBox1.SelectedIndices)
     85             {
     86                 index += i.ToString()+" , ";
     87             }
     88             
     89             // 获取当前所有选中项的ID,Title,Price
     90             string ids = "";
     91             string titles = "";
     92             string prices = "";
     93             foreach (Book book in listBox1.SelectedItems)
     94             {
     95                 ids += book.ID + " , ";
     96                 titles += book.Title + " , ";
     97                 prices += book.Price + " , ";
     98             }
     99             label1.Text = "当前选中项的索引: " + index;                     //+ listBox1.SelectedIndex.ToString();
    100             label2.Text = "选中的图书ID分别为: " + ids;
    101             label3.Text = "选中的图书名称分别为: " + titles;
    102             label4.Text = "选中的图书价格分别为: " + prices;
    103         }
    104 
    105         /// GetSelectedInfo_Linq: 获取选中的信息, Linq写法
    106         ///
    107         private void GetSelectedInfo_Linq()
    108         {
    109             if ( -1 == listBox1.SelectedIndex )
    110             {
    111                 MessageBox.Show("当前未选中任何项");
    112                 return;
    113             }
    114 
    115             string index = "";
    116             foreach (int i in listBox1.SelectedIndices)
    117             {
    118                 index += i.ToString() + ", ";
    119             }
    120             // Linq写法
    121             label1.Text = "当前选中项的索引: " + index;
    122             label2.Text =  "选中的图书ID分别为: "+ string.Join(", ", listBox1.SelectedItems.Cast<Book>().Select(book => book.ID).ToArray());
    123             label3.Text = "选中的图书名称分别为: " + string.Join(", ",listBox1.SelectedItems.Cast<Book>().Select(book => book.Title).ToArray());
    124             label4.Text = "选中的图书价格分别为: " + string.Join(", ", listBox1.SelectedItems.Cast<Book>().Select(book => book.Price).ToArray());
    125         }
    126 
    127     }
    128 }

  • 相关阅读:
    解决ios手机页面overflow scroll滑动很卡的问题
    响应式网页设计:rem、em设置网页字体大小自适应
    linq 和lambda查询
    单元测试的学习
    各种仓储模式的学习
    ref 微软官网
    泛型 学习
    aop 和castle 的一些 学习文章
    autofac 的好博文
    json 序列化和反序列化的3个方法
  • 原文地址:https://www.cnblogs.com/DuanLaoYe/p/5349973.html
Copyright © 2020-2023  润新知