• listbox控件使用


    1. 属性列表:

        SelectionMode    组件中条目的选择类型,即多选(Multiple)、单选(Single)
        Rows             列表框中显示总共多少行
        Selected         检测条目是否被选中
        SelectedItem     返回的类型是ListItem,获得列表框中被选择的条目
        Count            列表框中条目的总数
        SelectedIndex    列表框中被选择项的索引值
        Items            泛指列表框中的所有项,每一项的类型都是ListItem

    2. 取列表框中被选中的值  

         ListBox.SelectedValue  

    3. 动态的添加列表框中的项:

         ListBox.Items.Add("所要添加的项");

    4. 移出指定项:

         //首先判断列表框中的项是否大于0
         If(ListBox.Items.Count > 0 )
         {
    //移出选择的项
    ListBox.Items.Remove(ListBox.SelectedItem);
         }

    5. 清空所有项:

         //首先判断列表框中的项是否大于0
         If(ListBox.Items.Count > 0 )
         {
    //清空所有项
    ListBox.Items.Clear();
         }

    6. 列表框可以一次选择多项:
       
         只需设置列表框的属性 SelectionMode="Multiple",按Ctrl可以多选

    7. 两个列表框联动,即两级联动菜单

         //判断第一个列表框中被选中的值
         switch(ListBox1.SelectValue)
         {
    //如果是"A",第二个列表框中就添加这些:
    case "A"
          ListBox2.Items.Clear();
          ListBox2.Items.Add("A1");
          ListBox2.Items.Add("A2");
          ListBox2.Items.Add("A3");
    //如果是"B",第二个列表框中就添加这些:
    case "B"
          ListBox2.Items.Clear();
          ListBox2.Items.Add("B1");
          ListBox2.Items.Add("B2");
          ListBox2.Items.Add("B3");
         }

    8. 实现列表框中项的移位
         即:向上移位、向下移位
         具体的思路为:创建一个ListBox对象,并把要移位的项先暂放在这个对象中。
         如果是向上移位,就是把当前选定项的的上一项的值赋给当前选定的项,然后
         把刚才新加入的对象的值,再附给当前选定项的前一项。
         具体代码为:
          //定义一个变量,作移位用
          index = -1;
          //将当前条目的文本以及值都保存到一个临时变量里面
          ListItem lt=new ListItem (ListBox.SelectedItem.Text,ListBox.SelectedValue);
          //被选中的项的值等于上一条或下一条的值
          ListBox.Items[ListBox.SelectedIndex].Text=ListBox.Items[ListBox.SelectedIndex + index].Text;
          //被选中的项的值等于上一条或下一条的值
          ListBox.Items[ListBox.SelectedIndex].Value=ListBox.Items[ListBox.SelectedIndex + index].Value;
          //把被选中项的前一条或下一条的值用临时变量中的取代
          ListBox.Items[ListBox.SelectedIndex].Test=lt.Test;
          //把被选中项的前一条或下一条的值用临时变量中的取代
          ListBox.Items[ListBox.SelectedIndex].Value=lt.Value;
          //把鼠标指针放到移动后的那项上
          ListBox.Items[ListBox.SelectedIndex].Value=lt.Value;

    9. 移动指针到指定位置:

          (1).移至首条
              //将被选中项的索引设置为0就OK了
              ListBox.SelectIndex=0;
          (2).移至尾条
              //将被选中项的索引设置为ListBox.Items.Count-1就OK了
              ListBox.SelectIndex=ListBox.Items.Count-1;
          (3).上一条
              //用当前被选中的索引去减 1
              ListBox.SelectIndex=ListBox.SelectIndex - 1;
          (4).下一条
              //用当前被选中的索引去加 1
              ListBox.SelectIndex=ListBox.SelectIndex + 1;

    出自 51CTO.COM博客

    this.ListBox1.Items.Insertat(3,new   ListItem("插入在第3行之后项",""));  

    this.ListBox1.Items.Insertat(index,ListItem)

    ListBox1.Items.Insert(0,new   ListItem("text","value"));

    ASP.NET中添加控件ListBox , 属性设为 Multiple , 则可进行多选.
    就以两个listbox之间多选添加项目为例.
    两个控件为listboxleft , listboxright 定义了一个动态数组用于中间存储 arrRight .具体代码如下:

    //读取右边选中项目
       ArrayList arrRight = new ArrayList();
       foreach(ListItem item in this.ListBoxRight.Items) //按类型listitem读取listbox中选定项
       {
        if(item.Selected) //判断是否选中
        {
         arrRight.Add(item);
        }
       }  

       //右边移除选定项目 左边添加
       foreach(ListItem item in arrRight)
       {
        this.ListBoxLeft.Items.Add(item);
        this.ListBoxRight.Items.Remove(item);
       }
    不能将item的添加删除直接写在if(item.Selected){}内,因为项目remove后会出现错误

     Move the Item of ListBox

    .aspx

    --------------------------------

    <asp:ListBox id="ListBox1" style="Z-INDEX: 105; LEFT: 96px; POSITION: absolute; TOP: 344px" runat="server">
        <asp:ListItem Value="a1">a1</asp:ListItem>
        <asp:ListItem Value="a2">a2</asp:ListItem>
        <asp:ListItem Value="a3">a3</asp:ListItem>
       </asp:ListBox>

    ----------------------------------

    .cs

    //for 个

    private void Button1_Click(object sender, System.EventArgs e){
       if (this.ListBox1.SelectedIndex>=0)
       {
        int i = ListBox1.SelectedIndex;
        if(i>0)
        {
         string values = this.ListBox1.Items[i].Text ;
         this.ListBox1.Items[i].Text = this.ListBox1.Items[i-1].Text ;
         this.ListBox1.Items[i-1].Text = values;
        }
       }

    }

    ASP.NET中ListBox实现Double Click事件

    2007-06-24 13:18

    在ASP.NET中的ListBox控件的使用中很多人都发现没有了WINFORM中ListBox的鼠标双击事件

    这样就给我们开发带来很多不方便的地方

    也看了很多CSDN上用JS来实现双击事件的方法,都是不完整的,最后发现以下方法是最有效的

    首先在WEB页面上加入JS脚本和存放ListBox事件的隐藏输入框
    再将ASP.NET控件ListBox中加入双击事件声明
    <html>

    <head>

         <script language="javascript">

         function ListBox1_DoubleClick() {

           

            document.forms[0].ListBox1Hidden.value = "doubleclicked";

            document.forms[0].submit();

         }

    </script>

    </head>

    <body>

         <form runat="server">

             <div>Double click on Listbox

                 <br />

                 <asp:ListBox id="ListBox1"

                         ondblclick="ListBox1_DoubleClick()" runat="server">

                     <asp:ListItem Value="1">One</asp:ListItem>

                     <asp:ListItem Value="2">Two</asp:ListItem>

                     <asp:ListItem Value="3">Three</asp:ListItem>

                     <asp:ListItem Value="4">Four</asp:ListItem>

                 </asp:ListBox>

                 <input type="hidden" name="ListBox1Hidden" />

             </div>

             <div>click on button

                 <br />

                 <asp:Button id="Button1" onclick="Button1_Click"

                     runat="server" Text="Button"/>

             </div>

         </form>

    </body>

    </html>

     

     

    最后在WEB窗体加载时候执行下列代码就能实现双击ListBox中Item执行一些操作

     

    void Page_Load(Object sender, EventArgs e){

       if(Request.Params["ListBox1Hidden"] != null

         && (string)Request.Params["ListBox1Hidden"] == "doubleclicked" {

        //This means It was double click

         Response.Write("Double Click was fired selected item is "

         + ListBox1.SelectedItem.Text);

     

         //可以在这里加要运行的代码

        }

    }

     

  • 相关阅读:
    网摘:微软暗示将推出iPad版本Office
    Android的缘分和FarMap新版发布
    过年发生的,WinM7推出,MeeGo诞生,iPhone香肠
    gPhone体验和思考(一)
    位图的像素操作练习(20120525)
    远图 安致版上线(FarMap Android)
    iPhone的创意,iPhone应用的覆盖
    201871010101陈来弟《面向对象程序设计(java)》第一周学习总结 201871010101
    sdk&mfc&vcl
    ASP.NET中的Web.config详解
  • 原文地址:https://www.cnblogs.com/liuxingleiyu/p/5844977.html
Copyright © 2020-2023  润新知