C# ListView应用
C# ListView应用
1. 添加表头标题的方法
a. 直接在ListView控件上编写
b. 通过代码编写
//动态添加lstv_ReaderList列表头
/*
lstv_ReaderList.Columns.Add("序号", 50, HorizontalAlignment.Center);
lstv_ReaderList.Columns.Add("读写器IP", 90, HorizontalAlignment.Center);
lstv_ReaderList.Columns.Add("读写器Port", 75, HorizontalAlignment.Center);
lstv_ReaderList.Columns.Add("本机Port", 75, HorizontalAlignment.Center);
lstv_ReaderList.Columns.Add("通讯方式", 75, HorizontalAlignment.Center);
lstv_ReaderList.Columns.Add("参数配置", 80, HorizontalAlignment.Center);
lstv_ReaderList.Columns.Add("连接操作", 80, HorizontalAlignment.Center);
lstv_ReaderList.Columns.Add("运行操作", 80, HorizontalAlignment.Center);
*/
2. 在表格中插入控件的方法
a. 直接通过代码进行添加
//参数配置
myitem.SubItems.Add("更新参数");
Button btn_SetParam = new Button();
btn_SetParam.Text = "更新参数";
btn_SetParam.Enabled = false;
btn_SetParam.BackColor = Color.Bisque;
btn_SetParam.Click += lstv_ReaderList_SetParam_Click;
lstv_ReaderList.Controls.Add(btn_SetParam);
btn_SetParam.Size = new Size(lstv_ReaderList.Items[row].SubItems[].Bounds.Width,
lstv_ReaderList.Items[row].SubItems[].Bounds.Height);
btn_SetParam.Location = new Point(lstv_ReaderList.Items[row].SubItems[].Bounds.Left, lstv_ReaderList.Items[row].SubItems[].Bounds.Top); //连接操作
myitem.SubItems.Add("打开连接");
Button btn_Connect = new Button();
btn_Connect.Text = "打开连接";
btn_Connect.BackColor = Color.Bisque;
btn_Connect.Click += lstv_ReaderList_btnConnect_Click;
lstv_ReaderList.Controls.Add(btn_Connect);
btn_Connect.Size = new Size(lstv_ReaderList.Items[row].SubItems[].Bounds.Width,
lstv_ReaderList.Items[row].SubItems[].Bounds.Height);
btn_Connect.Location = new Point(lstv_ReaderList.Items[row].SubItems[].Bounds.Left, lstv_ReaderList.Items[row].SubItems[].Bounds.Top); //运行操作
myitem.SubItems.Add("开启运行");
Button btn_Run = new Button();
btn_Run.Text = "开启运行";
btn_Run.BackColor = Color.Bisque;
btn_Run.Click += lstv_ReaderList_btnRun_Click;
lstv_ReaderList.Controls.Add(btn_Run);
btn_Run.Size = new Size(lstv_ReaderList.Items[row].SubItems[].Bounds.Width,
lstv_ReaderList.Items[row].SubItems[].Bounds.Height);
btn_Run.Location = new Point(lstv_ReaderList.Items[row].SubItems[].Bounds.Left, lstv_ReaderList.Items[row].SubItems[].Bounds.Top);
b. 通过构建List<类>,在类中构建控件:
类:
class ReaderControl
{
public Button btn_ReaderParam; //设置读写器参数按钮
public Button btn_ReaderConect; //设置读写器连接按钮
public Button btn_ReaderRun; //设置读写器运行按钮 }
//参数配置
myitem.SubItems.Add("更新参数");
readercontrol.btn_ReaderParam = new Button();
readercontrol.btn_ReaderParam.Text = "更新参数";
readercontrol.btn_ReaderParam.Enabled = false;
readercontrol.btn_ReaderParam.BackColor = Color.Bisque;
readercontrol.btn_ReaderParam.Click += lstv_ReaderList_SetParam_Click;
lstv_ReaderList.Controls.Add(readercontrol.btn_ReaderParam);
readercontrol.btn_ReaderParam.Size = new Size(lstv_ReaderList.Items[row].SubItems[].Bounds.Width,
lstv_ReaderList.Items[row].SubItems[].Bounds.Height);
readercontrol.btn_ReaderParam.Location = new Point(lstv_ReaderList.Items[row].SubItems[].Bounds.Left, lstv_ReaderList.Items[row].SubItems[].Bounds.Top); //连接操作
myitem.SubItems.Add("打开连接");
readercontrol.btn_ReaderConect = new Button();
readercontrol.btn_ReaderConect.Text = "打开连接";
readercontrol.btn_ReaderConect.BackColor = Color.Bisque;
readercontrol.btn_ReaderConect.Click += lstv_ReaderList_btnConnect_Click;
lstv_ReaderList.Controls.Add(readercontrol.btn_ReaderConect);
readercontrol.btn_ReaderConect.Size = new Size(lstv_ReaderList.Items[row].SubItems[].Bounds.Width,
lstv_ReaderList.Items[row].SubItems[].Bounds.Height);
readercontrol.btn_ReaderConect.Location = new Point(lstv_ReaderList.Items[row].SubItems[].Bounds.Left, lstv_ReaderList.Items[row].SubItems[].Bounds.Top); //运行操作
myitem.SubItems.Add("开启运行");
readercontrol.btn_ReaderRun = new Button();
readercontrol.btn_ReaderRun.Text = "开启运行";
readercontrol.btn_ReaderRun.BackColor = Color.Bisque;
readercontrol.btn_ReaderRun.Click += lstv_ReaderList_btnRun_Click;
lstv_ReaderList.Controls.Add(readercontrol.btn_ReaderRun);
readercontrol.btn_ReaderRun.Size = new Size(lstv_ReaderList.Items[row].SubItems[].Bounds.Width,
lstv_ReaderList.Items[row].SubItems[].Bounds.Height);
readercontrol.btn_ReaderRun.Location = new Point(lstv_ReaderList.Items[row].SubItems[].Bounds.Left, lstv_ReaderList.Items[row].SubItems[].Bounds.Top);
2. 在表格中插入控件调用方法
a. 直接通过代码的调用方法,通过控件位置进行匹配:
private void lstv_ReaderList_btnConnect_Click(object sender, EventArgs e)
{
int btn_num = lstv_ReaderList.Controls.Count;
for (int i = ; i < btn_num; i++)
{
Button btn = (Button)lstv_ReaderList.Controls[i];
if (((Button)sender).Location == btn.Location)
{
int btn_index = i / ;
//连接操作
if (list_ReaderControl[btn_index].byte_ConnectState == )
{
Reader_Connect(btn, btn_index, );
}
else
{
Reader_Disconnect(btn, btn_index, );
}
}
}
}
b. 直接通过List<类>调用方法:
private void lstv_ReaderList_btnConnect_Click(object sender, EventArgs e)
{
for (int i = ; i < lstv_ReaderList.Items.Count; i++)
{
if (((Button)sender).Location == list_ReaderControl[i].btn_ReaderConect.Location)
{
//连接操作
if (list_ReaderControl[i].byte_ConnectState == )
{
Reader_Connect(i);
}
else
{
Reader_Disconnect(i);
}
}
}
}
C# ListView应用的更多相关文章
- 张高兴的 UWP 开发笔记:横向 ListView
ListView 默认的排列方向是纵向 ( Orientation="Vertical" ) ,但如果我们需要横向显示的 ListView 怎么办? Blend for Visua ...
- Android—万能ListView适配器
ListView是开发中最常用的控件了,但是总是会写重复的代码,浪费时间又没有意义. 最近参考一些资料,发现一个万能ListView适配器,代码量少,节省时间,总结一下分享给大家. 首先有一个自定义的 ...
- Android—ListView条目背景为图片时,条目间距问题解决
ListView是android开发中使用最普遍的控件了,可有的listView条目的内容颇为丰富,甚至为了美观,背景用指定图片,如下图:
- Android中ListView实现图文并列并且自定义分割线(完善仿微信APP)
昨天的(今天凌晨)的博文<Android中Fragment和ViewPager那点事儿>中,我们通过使用Fragment和ViewPager模仿实现了微信的布局框架.今天我们来通过使用Li ...
- listview下拉刷新和上拉加载更多的多种实现方案
listview经常结合下来刷新和上拉加载更多使用,本文总结了三种常用到的方案分别作出说明. 方案一:添加头布局和脚布局 android系统为listview提供了addfootview ...
- Android listview和gridview以及view的区别
GridView 可以指定显示的条目的列数. listview一般显示的条目的列数都是一列 如果是列表(单列多行形式)的使用ListView,如果是多行多列网状形式的优先使用GridView andr ...
- mono for android Listview 里面按钮 view Button click 注册方法 并且传值给其他Activity 主要是context
需求:为Listview的Item里面的按钮Button添加一个事件,单击按钮时通过事件传值并跳转到新的页面. 环境:mono 效果: 布局代码 主布局 <?xml version=" ...
- 【腾讯Bugly干货分享】跨平台 ListView 性能优化
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/FbiSLPxFdGqJ00WgpJ94yw 导语 精 ...
- android内部培训视频_第三节(3)_常用控件(ViewPager、日期时间相关、ListView)
第三节(2):常用控件之ViewPager.日期时间相关.ListView 一.ViewPager 实例:结合PagerAdapter滑动切换图片 二.日期时间相关:AnalogClock\Dig ...
- 父ListView嵌套子ListView时点击事件没有响应
转发请备注出处:http://www.cnblogs.com/LT5505/p/5972999.html 问题: 在ListView中嵌套ListView之后,子ListView会把父ListView ...
随机推荐
- linux系统下常用的命令(吐血自己整理,且用且珍惜)
1)linux命令太多,有时候记不起来是哪个,为了方便大家查询,自己吐血整理了以下这些,转载时请标明出处,珍惜原创成果 吐血自己整理,且用且珍惜) 吐血自己整理,且用且珍惜) 吐血自己整理,且用且珍惜 ...
- python之路:列表及元组之定义
python开发之路:列表及元组之定义 列表是以后用处较大的一个数据类型,这种数据类型可以存储按组分类的信息.好了,我不多说,开始讲了! 好了,现在我有个情景,我要存东汉时期(韩国,秦国,……)所 ...
- Android Studio上传代码到Coding.net
1.官方帮助文档:https://coding.net/help/doc/git/import-from-local.html 2.简单点: https://git.coding.net/javaka ...
- Android:得到WebView当前页的html源码
WebView没有提供直接的API,需要用JavaScript变通处理一下.本文试图总结一个最简单.优雅的代码. 有两步: 1.先创建一个JavaScript接口类: class MyJavaScri ...
- 程序配置的原则和实践以及 Spring Boot 支持方式
原则 软件需要在不同的环境中部署,代码是保持不变的,但是不同的运行环境存在差异,所以需要使用配置适应不同的环境.比如: 数据库,Redis,以及其他 后端服务 的配置: 第三方服务的证书,如 oAut ...
- 让新版appium支持by_name定位
org.openqa.selenium.InvalidSelectorException: Locator Strategy 'name' is not supported for this sess ...
- 一些常用的 std 类型
[std::allocator] 标准库中包含一个名为allocator的类,允许我们将分配和初始化分离.使用allocator通常会提供更好的性能和更灵活的内存管理能力. 标准库allocator类 ...
- c#遍历一个对象中所有的属性和值
SpDictItem sp = GetCFHObject.GetSpItem("); PropertyInfo[] propertys = sp.GetType().GetPropertie ...
- vscode快捷键
vscode快捷键 按 ctrl+shift+p 查找设置文件Ctrl + W 关闭编辑器 设置定位到终端的快捷键:打开键盘配置文件,搜索focus terminal,找到聚焦到终端的命令,添加ctr ...
- js问题: is not a function
今天遇到一个js问题,函数名和页面上的一个element的id重复了.第一次进入这个页面的时候可以点击触发事件,在第二次点击触发事件的时候就会报如下错误. js代码截图: 函数名和页面上的一个元素的i ...