在C#的WinCE开发中,如何为数据列表添加CheckBox列

在WinCE开发中遇到了问题,如何为DataGrid绑定一列CheckBox列,使数据可以多选全选操作!经过试验发现在WinCE中DataGrid的功能比较弱,无限实现自定义控件!后来发现ListView可以增加一个选择按钮的属性,就改用将ListView改进,使之像GridView一样,而且可以实现全选反选功能!
代码如下:
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace SmartDeviceProject1
{
    public partial class OutTop : Form
    {
        #region 实现表格线的API函数 没有到更加方便的办法,就用这个来实现了
        private const int LVM_GETEXTENDEDLISTVIEWSTYLE = 0x1037;
        private const int LVM_SETEXTENDEDLISTVIEWSTYLE = 0x1036;
        private const int LVS_EX_GRIDLINES = 0x1;
        [System.Runtime.InteropServices.DllImport("coredll.dll")]
        private static extern int SendMessageW(int hWnd, int wMsg, int wParam, int lParam);
        [System.Runtime.InteropServices.DllImport("coredll.dll")]
        private static extern int GetFocus();
        public static void SetGridLines(System.Windows.Forms.ListView lvw)
        {
            lvw.Focus();
            int hWnd = GetFocus();
            int extendedStyle = SendMessageW(hWnd, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
            extendedStyle |= LVS_EX_GRIDLINES;
            SendMessageW(hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, extendedStyle);
        }
        #endregion
        //引用WebServer服务
        DataAcess.Service1 dataAcess = new SmartDeviceProject1.DataAcess.Service1();
        public OutTop()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 窗体Load事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OutTop_Load(object sender, EventArgs e)
        {
            //获取数据集
            DataSet ds = dataAcess.GetDataSet("select User_Name,User_Sex,User_ID from T_User", null, false, "192.168.1.15", "sa", "211314");
            //循环绑定将数据绑定到ListView中去
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                ListViewItem listViewItem = new ListViewItem(row[0].ToString());
                listViewItem.SubItems.Add(row[1].ToString());
                listViewItem.SubItems.Add(row[2].ToString());
                listView1.Items.Add(listViewItem);
            }
            //表格线的设置方法
            SetGridLines(listView1);权重计算
        }
        荷香散尽/// <summary>
        /// 全选反选按钮事件
        /// </summary>
        /// <param name="sender"></param>
        /// llr<param name="e"></param>
        private void checkBox1_CheckStateChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked)
            {
                foreach (ListViewItem item in listView1.Items)
自然肌理
                {
                    item.Checked = true;
                }
            }
            else
            {
                foreach (ListViewItem item in listView1.Items)
                {
                    item.Checked = false;
                }
            }
         
        }
        /// <summary>
        /// 稻草秸秆按钮事件 点击该按钮可以弹出所有选择列的ID
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)对口升学
        {
            //获取隐藏列ID的值
            foreach (ListViewItem item in listView1.Items)
            {
                if(item.Checked)
                {
                    MessageBox.Show(item.SubItems[2].Text);
                }
            }
        }
    }
}

本文发布于:2024-09-21 15:46:14,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/222565.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:伦敦地图
下一篇:EXTjs上传文件
标签:按钮   全选   找到   实现   事件   反选   绑定   发现
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议