Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > WinForm中的ListBox组件编程
【标  题】:WinForm中的ListBox组件编程
【关键字】:编程,组件,in,is,Win,rm,WinForm,Form,For,or,ListBox,Wi,WinForm,ListBox
【来  源】:网络

WinForm中的ListBox组件编程

Your Ad Here <asp:ListBox Id = "MyListBox" runat = "server" >
<asp:ListItem Value = "1" >第一个条目</asp:ListItem >
<asp:ListItem Value = "2" >第二个条目</asp:ListItem >
注释:这里还可以加入类似上面的若干条目
.....
</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 . Items . Count > 0 )
{
lstItem . SelectedIndex = 0 ;
}
}
//按钮"至尾条"事件处理程序
if ( sender == Last )
{
if ( lstItem . Items . Count > 0 )
{
lstItem . SelectedIndex = lstItem . Items . Count - 1 ;
}
}
//按钮"上一条"事件处理程序
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 ;
}
}

   (4).如何实现组件中的指定条目的移位:

   移位包括二种,其一是向上移位,其二是向下移位。程序中具体的实现思路是:创建一个ListItem对象,并把要移位指定的条目中的内容先暂放在此新建的这个对象中。如果选定的是向上移位,就把当前选定的条目的上一个条目的值赋值给当前选定的条目,然后把刚才新建的对象的值,再赋值给选定条目的上一个条目,完成条目的向上移位操作。对于向下移位,可以仿效上面的做法,但和上面做法的主要区别在于不是选定条目的上一个条目了,而是选定条目的下一个条目。下列语句就是就是实现这种思路的具体的程序代码:

//按钮"向上移位"和"向下移位"事件处理程序
if ( ( sender == Up && lstItem . SelectedIndex > 0 ) || ( sender == Down && lstItem . SelectedIndex < lstItem . Items . Count - 1 ) )
{
int offset ;
if ( sender == Up )
{
offset = -1 ;
}
else
{
offset = 1 ;
}

ListItem lstTemp = new ListItem ( lstItem . SelectedItem . Text , lstItem . SelectedItem . Value ) ;
lstItem . Items [ lstItem.SelectedIndex ] .Text = lstItem . Items [ lstItem . SelectedIndex + offset ] . Text ;
lstItem . Items [ lstItem . SelectedIndex ] . Value = lstItem . Items [ lstItem . SelectedIndex + offset ] . Value ;
lstItem . Items [ lstItem . SelectedIndex + offset ] . Text = lstTemp . Text ;
lstItem . Items [ lstItem . SelectedIndex + offset ] . Value = lstTemp . Value ;
lstItem . SelectedIndex = lstItem . SelectedIndex + offset ;
}

四. 本文中源程序代码(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 ( txtItem.Text != "" )
{
lstItem . Items . Add ( new ListItem ( txtItem . Text ) ) ;
}
}
//按钮"删除"事件处理程序
if ( sender == Del )
{
if ( lstItem . SelectedIndex > -1 )
{
lstItem . Items . Remove ( lstItem . SelectedItem ) ;
}
}
//按钮"向上移位"和"向下移位"事件处理程序
if ( ( sender == Up && lstItem . SelectedIndex > 0 ) || ( sender == Down && lstItem . SelectedIndex < lstItem . Items . Count - 1 ) )
{
int offset ;
if ( sender == Up )
{
offset = -1 ;
}
else
{
offset = 1 ;
}

ListItem lstTemp = new ListItem ( lstItem . SelectedItem . Text , lstItem . SelectedItem . Value ) ;
lstItem . Items [ lstItem.SelectedIndex ] .Text = lstItem . Items [ lstItem . SelectedIndex + offset ] . Text ;
lstItem . Items [ lstItem . SelectedIndex ] . Value = lstItem . Items [ lstItem . SelectedIndex + offset ] . Value ;
lstItem . Items [ lstItem . SelectedIndex + offset ] . Text = lstTemp . Text ;
lstItem . Items [ lstItem . SelectedIndex + offset ] . Value = lstTemp . Value ;
lstItem . SelectedIndex = lstItem . SelectedIndex + offset ;
}
//按钮"至首条"事件处理程序
if ( sender == First )
{
if ( lstItem . Items . Count > 0 )
{
lstItem . SelectedIndex = 0 ;
}
}
//按钮"至尾条"事件处理程序
if ( sender == Last )
{
if ( lstItem . Items . Count > 0 )
{
lstItem . SelectedIndex = lstItem . Items . Count - 1 ;
}
}
//按钮"上一条"事件处理程序
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 = 2 > <h1 > <font color = "red" > WinForm组件ListBox演示程序 </font > </h1 > </td> </tr >
<tr >
<td > 请输入要增加的条目名称:</td >
<td >
<asp:TextBox id = "txtItem" TextMode = "SingleLine" runat = "server"/>
<asp:Button id = Add Text = "增加条目" runat = "server" onclick = "Button_Click"/>
</td >
</tr >
<tr >
<td >ListBox: <br >
<asp:ListBox id = "lstItem" Width = 200 Height = 250 runat = "server" >
<asp:ListItem > 第一个条目 </asp:ListItem >
</asp:ListBox >
</td >
<td >
<asp:Button id = "Del" Text = "删除" runat = "server" onclick = "Button_Click" />
<asp:Button id = "Up" Text = "向上移位" runat = "server" onclick = "Button_Click" />
<asp:Button id = "Down" Text = "向下移位" runat = "server" onclick = "Button_Click" />
<asp:Button id = "First" Text = "至首条" runat = "server" onclick = "Button_Click" />
<asp:Button id="Prev" Text = "上一条" runat = "server" onclick = "Button_Click" />
<asp:Button id = "Next" Text = "下一条" runat = "server" onclick = "Button_Click" />
<asp:Button id = "Last" Text = "至尾条" runat = "server" onclick = "Button_Click" />
</td >
</tr >
</table >
</form >
<body >
</html >

 五. 总结:

   本文主要介绍了WinForm组件中的一个比较重要的组件--ListBox的属性,以及其的主要的使用方法,掌握这些WinForm组件编程是进行.Net方面编程的首要条件,也是一个比较重要的环节。
C# Builder建一个ASP.NET应用程序:【上一篇】
C/C++中字符指针数组及指向指针的指针的含义:【下一篇】
【相关文章】
  • Visual C#建立简单消息传递系统
  • 用Visual C#实现P2P应用程序
  • 多线程在Visual C#网络编程中的应用
  • 使用Visual C#实现断点续传
  • Visual C#编写实现POP3的程序
  • 在IE中托管Windows Form
  • 利用Visual C#开发一个媒体播放器
  • 用Visual C#向Excel2002传输XML数据
  • 在Visual C#中使用XML指南之读取XML
  • 用Visual C#来修改和删除数据库记录
  • 【随机文章】
  • 我不懂DOMINO,但是我要坚持我的DOMINO
  • 解决qmail经常收到来至<#@[]>这样的邮件!
  • 出售华为hcne考试票
  • 注定郁闷的今天
  • 我的IT十年
  • 保卫系统安全设定计算机密码的技巧
  • 用FlashMX打造逼真打火机(三)
  • 如何配置Java Server Page运行环境
  • TEW-301PC PCMCIA适配器
  • 瑞星力荐金山毒霸?原来是广告程序“作崇”
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.