WinForm中的ListBox组件编程
ListBox组件是一个程序设计中经常使用到的组件,在Visual C#和Visual Basic .Net程序中使用这个组件,必须要在程序中导入.Net FrameWork SDK中名称空间System.Windows.Forms,因为在System.Windows.Forms名称空间中定义了这个组件。在ASP.NET的Web页面中,ListBox组件是作为一个服务器端组件的形式出现的,所谓服务器端组件就是这些组件是在服务器端存在的。本文就是来介绍ListBox组件在ASP.NET的Web页面中的具体使用和操作方法。
一.
如何在ASP.NET页面中定义一个ListBox组件:
在ASP.NET页面中创建一个ListBox组件的语法如下:
| <asp:ListBox Id = "MyListBox" runat = "server" >
<asp:ListItem Value <asp:ListItem Value = "2" 注释:这里还可以加入类似上面的若干条目 ..... </asp:ListBox > |
在Web页面中执行上面的语句就可以产生一个名称为"MyListBox",包含若干条目的ListBox组件。
二. ListBox组件中常用的属性:
我们通过以下表格来说明ListBox组件的一些常用的属性:
| 属性名称 | 属性代表的意义 |
| SelectionMode | 组件中条目的选择的类型即:多选、单选。Single,Multiple |
| Rows | 此组件显示总共多少行 |
| Selected | 检测条目十分被选中 |
| SelectedItem | 返回的类型是ListItem,获得组件中被选择的条目 |
| Count | 组件中条目的总数 |
| SelectedIndex | 组件中被选择的条目的索引值 |
| Items | 泛指组件中所有的条目,每一个条目的类型都是ListItem |
三.
通过一个例子来掌握ListBox组件在ASP.NET页面中的具体用法:
在下面介绍ListBox组件在ASP.NET中的使用方法的时候,程序采用的程序设计语言是Visual C#。
(1).如何在ListBox组件添加新的条目:
通过以下语句就可以在名称为lstItem的ListBox组件中增加一个名称为"Sample"的条目:
lstItem .
Items . Add ( new ListItem ( "Sample" ) )
(2).如何在ListBox组件中删除指定的条目:
下列语句就是删除名称为lstItem的ListBox组件中的选定的一个条目:
lstItem . Items .
Remove ( lstItem . SelectedItem )
(3).如何在组件中移动指向条目的指针:
移动条目的指针主要有四种方式:至首条目、至尾条目、下一条、上一条。在程序设计中主要是通过操作组件的Count和SelectedIndex属性来实现以上四种方式的。以下就是具体实现这四种方式的程序代码:
| //按钮"至首条"事件处理程序
if ( sender == First ) { if ( { lstItem . SelectedIndex = 0 ; } } //按钮"至尾条"事件处理程序 if ( sender == Last ) { if ( lstItem . Items . Count > 0 ) { lstItem . } } //按钮"上一条"事件处理程序 if ( sender == Prev ) { if ( { lstItem . SelectedIndex = } } //按钮"下一条"事件处理程序 if ( sender == Next ) { if ( lstItem . SelectedIndex < { lstItem . SelectedIndex = } } |
(4).如何实现组件中的指定条目的移位:
移位包括二种,其一是向上移位,其二是向下移位。程序中具体的实现思路是:创建一个ListItem对象,并把要移位指定的条目中的内容先暂放在此新建的这个对象中。如果选定的是向上移位,就把当前选定的条目的上一个条目的值赋值给当前选定的条目,然后把刚才新建的对象的值,再赋值给选定条目的上一个条目,完成条目的向上移位操作。对于向下移位,可以仿效上面的做法,但和上面做法的主要区别在于不是选定条目的上一个条目了,而是选定条目的下一个条目。下列语句就是就是实现这种思路的具体的程序代码:
|
//按钮"向上移位"和"向下移位"事件处理程序 if ( ( sender == Up && lstItem . { int offset ; if ( sender == Up ) { offset = -1 ; } else { offset = 1 ; } ListItem lstTemp = lstItem . Items [ lstItem.SelectedIndex ] .Text = lstItem . Items [ lstItem . lstItem . Items [ lstItem . SelectedIndex + offset ] . Text lstItem . Items [ lstItem . SelectedIndex + lstItem . SelectedIndex = } |
四. 本文中源程序代码(listbox.aspx)和执行的界面:
下图是执行了下列源程序代码(listbox.aspx)后,生成的界面:

listbox.aspx源程序代码,具体如下:
| <% @ Page Language = "C#" %>
<html > <head > <script runat = "server" > protected void Button_Click ( object sender , EventArgs e ) { //按钮"增加条目"事件处理程序 if ( sender == Add ) { if ( { lstItem . Items . Add ( new ListItem ( } } //按钮"删除"事件处理程序 if ( { if ( lstItem . SelectedIndex > -1 ) { lstItem . Items . Remove ( lstItem . SelectedItem ) ; } } //按钮"向上移位"和"向下移位"事件处理程序 if ( ( sender == Up && { int offset ; if ( sender == Up ) { offset = -1 ; } else { offset = 1 ; } ListItem lstTemp = lstItem . Items [ lstItem.SelectedIndex ] .Text = lstItem . Items [ lstItem . Items [ lstItem . lstItem . Items [ lstItem . SelectedIndex + offset ] . Text = lstItem . Items [ lstItem . SelectedIndex + offset ] . lstItem . SelectedIndex = lstItem . } //按钮"至首条"事件处理程序 if ( sender { if ( lstItem . Items . Count > 0 ) { lstItem . SelectedIndex = 0 ; } } //按钮"至尾条"事件处理程序 if ( sender == Last ) { if ( { lstItem . SelectedIndex = } } //按钮"上一条"事件处理程序 if ( sender == Prev ) { if ( lstItem . SelectedIndex > 0 { lstItem . SelectedIndex = lstItem . SelectedIndex - 1 ; } } //按钮"下一条"事件处理程序 if ( sender == Next ) { if ( lstItem . SelectedIndex < lstItem . Items . Count - 1 ) { lstItem . SelectedIndex = lstItem . SelectedIndex + 1 ; } } } </script > </head > <body <form runat = "server" > <table > <tr > <td Colspan = <tr > <td > 请输入要增加的条目名称:</td > <td > <asp:TextBox id = "txtItem" TextMode = "SingleLine" runat = "server"/> <asp:Button id = Add Text = "增加条目" runat = "server" onclick = </td > </tr > <tr > <td <asp:ListBox id = "lstItem" Width = 200 Height = 250 <asp:ListItem > 第一个条目 </asp:ListItem > </asp:ListBox > </td > <td > <asp:Button id = <asp:Button id = "Up" Text = "向上移位" runat = "server" onclick = <asp:Button id = "Down" Text = "向下移位" runat = "server" <asp:Button id = "First" Text = "至首条" runat <asp:Button id="Prev" Text = <asp:Button id = <asp:Button id = "Last" Text = "至尾条" runat = "server" onclick = </td > </tr > </table > </form <body > </html > |
WinForm中的ListBox组件编程的更多相关文章
- winform中的ListBox和ComboBox绑定数据
将集合数据绑定到ListBox和ComboBox控件,界面上显示某个属性的内容 //... //自定义了Person类(有Name,Age,Heigth等属性) List<Person> ...
- WinForm中获取Listbox、DataGridView等控件某行对应的数据
Listbox:listbox.SelectedItem as XXX DataGridView:dataGridView1.Rows[i].Cells[1].Value.ToString()
- [Winform]Media Player com组件应用中遇到的问题
摘要 最近一个项目中,需要用到在客户端全屏循环播放视频,当时考虑使用开源的播放器,但控制起来不方便,然后考虑既然都是windows系统,那么可以考虑使用微软自带的Media Player播放器.所以在 ...
- 在C#中实现listbox的项上下移动(winform) 标准
在C#中实现listbox的项上下移动(winform) 收藏人:梅毛子360 2013-10-02 | 阅:1 转:2 | 分享 | 来源 usi ...
- 浅析C#组件编程中的一些小细节
控件与组件的区别(Control&Component的区别) 作者:作者不详 发布日期:2011-06-30 12:08:41 控件与组件的区别(Control&Component的 ...
- 分享在winform下实现模块化插件编程-优化版
上一篇<分享在winform下实现模块化插件编程>已经实现了模块化编程,但我认为不够完美,存在以下几个问题: 1.IAppContext中的CreatePlugInForm方法只能依据完整 ...
- .Net中的反应式编程(Reactive Programming)
系列主题:基于消息的软件架构模型演变 一.反应式编程(Reactive Programming) 1.什么是反应式编程:反应式编程(Reactive programming)简称Rx,他是一个使用LI ...
- Net中的反应式编程
Net中的反应式编程(Reactive Programming) 系列主题:基于消息的软件架构模型演变 一.反应式编程(Reactive Programming) 1.什么是反应式编程:反应式编程 ...
- .NET中使用APlayer组件自制播放器
目录 说明 APlayer介绍 APlayer具备功能 APlayer使用 自制播放器Demo 未完成工作 源码下载 说明 由于需求原因,需要在项目中(桌面程序)集成一个在线播放视频的功能.大概要具备 ...
随机推荐
- [转]五个Linux下用户空间的调试工具
有几个Linux下的用户空间调试工具和技术,它们用来分析用户空间的问题相当有用.它们是: 'print' 语句 查询 (/proc, /sys 等) 跟踪 (strace/ltrace) Valgri ...
- hibernate映射数据库时@ManyToOne和@OneToMany
第一次用hibernate自动生成表,涉及到多个表的外键,用到了@OneToMany和@ManyToOne注解碰到了几个错误. 首先声明一个基础,@OneToMany和@ManyToOne两个注解没有 ...
- jQuery——链式编程与隐式迭代
链式编程 1.原理:return this; 2.通常情况下,只有设置操作才能把链式编程延续下去.因为获取操作的时候,会返回获取到的相应的值,无法返回 this. 3.end():结束当前链最近的一次 ...
- Centos 修改源
1首先备份原来的配置文件: mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2下载对应版本r ...
- struts.xml详解
参考自:http://blog.csdn.net/zz_mm/article/details/5460397 1. 深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. ...
- 初学JSP_内置对象
out内置对象: 表单,表单常用的的提交方式
- 我所理解的Android和iOS上的View
View,几乎是所有界面系统中的基类,在iOS里面是UIView,在Android里是View. 那么,到底View是什么东西,他做了些什么,他是怎么做到的,在这篇文章中,希望能带给大家一些启发. 抽 ...
- 转录组入门(3):了解fastq测序数据
sra文件转换为fastq格式 fastq-dump -h --split-3 也就是说如果SRA文件中只有一个文件,那么这个参数就会被忽略.如果原文件中有两个文件,那么它就会把成对的文件按*_1.f ...
- Ubuntu 常用解压与压缩命令
参考 https://blog.csdn.net/songbinxu/article/details/80435665 示例: 把/home/wangju/gitlab/automationTest目 ...
- Springboot使用JdbcTemplate RowMapper查询,直接返回实体列表
ManagerRowMapper.java public class ManagerRowMapper implements RowMapper<Manager>{ @Override p ...