控件(一)——实现列表框中指定条目移位和移动指针到指定位置
天轰穿视频主要讲了三大部分:C#基础、vs控件、ado.net。在这三者中,绝大篇幅介绍的VS中的控件。
下面首先让我们认识下ListBox控件的使用。
本例题中应用到的控件有label、ListBox、Button三个常用的控件。
如下:
设置列表框的SelectionMode属性为Multiple,以可以选中多条。
代码如下:
protected void Page_Load(object sender, EventArgs e) { Label2.Text = "请按照您的喜爱程度给下面的英雄排序:"; Label2.Font.Bold = true; Label2.Font.Size = 16; } protected void btnUp_Click(object sender, EventArgs e) {//上下移动一条 if (((Button)sender ).CommandName =="up" && lsbShow.SelectedIndex>0 ||((Button )sender).CommandName=="down" && lsbShow.SelectedIndex<lsbShow.Items.Count-1) {//判断传来的命令必须是 up并且所选条目的索引必须大于0,或者 down并且所选条目必须小雨最大项 int index;//为了减少代码,这里做一个对变量的判断,以后直接调用变量 if (((Button)sender).CommandName == "up") { index = -1;//以后的索引就在当前的索引加一或者减一 } else { index = 1; } ListItem lt = new ListItem(lsbShow.SelectedItem.Text, lsbShow.SelectedValue); lsbShow.Items[lsbShow.SelectedIndex].Text = lsbShow.Items[lsbShow.SelectedIndex + index].Text; lsbShow.Items[lsbShow.SelectedIndex].Value = lsbShow.Items[lsbShow.SelectedIndex + index].Value; lsbShow.Items[lsbShow.SelectedIndex + index].Text = lt.Text; lsbShow.Items[lsbShow.SelectedIndex + index].Value = lt.Value; lsbShow.SelectedIndex = lsbShow.SelectedIndex + index; } } protected void btnFirst_Click(object sender, EventArgs e) {//至首条 lsbShow.SelectedIndex = 0; } protected void btnLast_Click(object sender, EventArgs e) {//至尾条 lsbShow.SelectedIndex = lsbShow.Items.Count - 1; } protected void btnBefore_Click(object sender, EventArgs e) { //上一条 lsbShow.SelectedIndex = lsbShow.SelectedIndex - 1; } protected void btnNext_Click(object sender, EventArgs e) {//下一条 lsbShow.SelectedIndex = lsbShow.SelectedIndex + 1; }
上移下移按钮点击时都响应“btnUp_Click”事件,对应代码如下:
<p> <asp:Button ID="btnUp" runat="server" Text="上移" CommandName="up" onclick="btnUp_Click" /> <asp:Button ID="btnDown" runat="server" Text="下移" CommandName="down" onclick="btnUp_Click" /> </p>
效果如下:
分类:
【控件】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构