关于窗体通讯录

这篇博客介绍了Windows窗体应用中控件事件的处理,如双击触发事件,以及ListView的使用技巧,包括设置显示模式、添加列、实现整行选中和与右键菜单的关联。同时,还提供了相关的代码示例,包括主窗体和第二个窗体的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

控件的事件 默认事件

双击触发

获取内容

对象.属性

类型转换

消息盒子MessageBox的Show方法只能输出字符串

转换方式
Convert.ToString()
Convert.ToInt32(整数字符串)

控件对象的属性

有的属性是一个值

有的属性是一个类似于对象数组的容器

类对象数组的容器的操作

让窗体固定不允许变化

在这里插入图片描述

给listview设置显示模式

在这里插入图片描述

给详情模式添加列

先添加两个列
在这里插入图片描述

listview整行选中

在这里插入图片描述

控件与右键菜单的关联

在这里插入图片描述

参考代码

在这里插入图片描述

主窗体代码

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

namespace WindowsFormsApplication49
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // 实例化名片列表窗体,显示
            fmCardList cl = new fmCardList();
            cl.Show();

        }
    }
}

在这里插入图片描述

第二个窗体的代码

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

namespace WindowsFormsApplication49
{
    public partial class fmCardList : Form
    {
        // 定义一个全局的连接对象的变量
        SqlConnection conn = null;

        public fmCardList()
        {
            InitializeComponent();
        }

        private void tsmiDelete_Click(object sender, EventArgs e)
        {
            //  找到被选中的项
            String qqnumber = lvCards.SelectedItems[0].SubItems[1].Text;

            // 要做的事情
            String sql = String.Format("delete from QQCard where qqnumber = {0}", qqnumber);

            // 连接对象开启
            conn.Open();

            // 生成执法者
            SqlCommand cmd = new SqlCommand(sql,conn);

            // 执法者调用方法 执行不查询的方法
            int n = cmd.ExecuteNonQuery();

            MessageBox.Show("受影响的行数为" + n);
            

            // 假设需要删除吕布
            // delete from 表名 where name='吕布'

            // 关一下
            conn.Close();
            1
            // 清空listview对象中的项
            lvCards.Items.Clear();

            // 重新load一下data
            loadData();
        }

        private void tsmiAddItem_Click(object sender, EventArgs e)
        {
            // 往listview对象中添加数据,先加假数据
            // 获得listview的项的集合,往集合中中一个item对象
            // 实例化一个项,添加到集合中

            // 类名 变量名 = new 类名;
            ListViewItem tempItem = new ListViewItem();
            tempItem.SubItems.Add("1111111");
            // 对象.属性 = 值
            tempItem.Text = "张飞";

            // 往集合中添加这个项
            lvCards.Items.Add(tempItem);
        }

        private void fmCardList_Load(object sender, EventArgs e)
        {
            

            // 读取数据库 获得所有的数据 并且添加到listview中
            loadData();
        }

        public void loadData() {
            // 实例化一个连接对象
            // 连接字符串
            String connStr = "Data Source=.;Initial Catalog=dbok;Integrated Security=True";
            // 连接对象
            conn = new SqlConnection(connStr);

            // 创建执法者
            String sql = "select * from QQCard";
            SqlCommand cmd = new SqlCommand(sql,conn);


            // 打开连接
            conn.Open();

            // 让执法者获取所有的数据
            SqlDataReader reader =cmd.ExecuteReader();

            // 遍历处理数据表中的所有内容
            String name;
            String qqnumber;
            while(reader.Read()){
                name = reader["qqname"].ToString();
                qqnumber = reader["qqnumber"].ToString();
                // 生成一个项
                ListViewItem temp_item = new ListViewItem();
                // 给项添加文本
                temp_item.Text = name;
                // 给项添加子项
                temp_item.SubItems.Add(qqnumber);
                // 把项添加到lv对象的Items集合中
                lvCards.Items.Add(temp_item);

            }

            // 读数据。。。

            // 填入到listview对象的items列表中

            // 关闭连接对象
            conn.Close();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值