精华内容
下载资源
问答
  • C# ListBox

    2010-07-14 09:02:37
    C# ListBox C# ListBox C# ListBox
  • C# listbox

    2016-11-18 11:17:33
    如图 控件listbox 我点击右下角的按钮时,触发的是什么事件,click没反应 SelectedIndexChanged也没反应. 哪位大神解释下啊[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/6.gif][/img] ...
  • c# Listbox自动滚动

    2013-02-21 14:22:29
    c# Listbox自动滚动
  • C# listBox点菜功能

    2011-10-18 15:04:40
    C# listBox点菜功能,listBox实现点菜
  • C# listbox文件拖拽

    2013-01-07 11:53:40
    C# listbox文件拖拽,可以进行拽入和拽出操作。
  • C# ListBox控件中item换行 C#重绘ListBox项   WindowsForm项目开发中,Listbox控件item数据项,只能一条数据显示在一行,有的时候内容很长,体验就非常之差。简直要歇菜了。哈哈。。。不开玩笑了。下面讲下怎么...

    C# ListBox控件中item换行 C#重绘ListBox项

     

    WindowsForm项目开发中,Listbox控件item数据项,只能一条数据显示在一行,有的时候内容很长,体验就非常之差。简直要歇菜了。哈哈。。。不开玩笑了。下面讲下怎么实现吧!

    新建一个Winform项目,命名为ListAutoline,拖一个按钮(用来填充数据用的,触发吧),一个ListBox控件 . 如图;

    弄完之后呢  将listbox属性项:  把这两个属性设置成如图所示;Enabled可设置可不设置;看个人了; DramMode主要是控制列表框绘制,系统用户绘制每项;可以理解为启用人工绘制的意思啦;

    弄玩上面之后,咱们来看一下怎么绘制这个玩意吧。

    先手动做几条数据吧 搞个Datatable去装数据;代码如下

     Font nfont;
            Color colorn;
            int leftMargines;
            int topMargines;
    
            int distance;
            Font tfont;
            DataTable ListData;
    
            /// <summary>
            /// 初始化数据
            /// </summary>
            private void FillDataTable()
            {
                ListData = new DataTable("List");
                //ListData.Columns.Add("Caption", System.Type.GetType("System.String"));
                ListData.Columns.Add("Text", System.Type.GetType("System.String"));
                ListData.Rows.Add(
                    new object[] 
                    { 
                        //"datagram ", 
                        "工站:过谁丢发货未付哈尔发我份那份辣口味发文分蘖UI违法哈维佛阿文hi服务。" 
                    });
                ListData.Rows.Add(
                    new object[] 
                    { 
                        //"digital signature ",
                        "过谁丢发货未付哈尔发我份那份辣口味发文分蘖UI违法哈维佛阿文hi服务请检查连接P上传"
                    });
                ListData.Rows.Add(
                    new object[]
                    { 
                        //"Digital Signature Standard ",
                        "过谁丢发货未付哈尔发我份那份辣口味发文分蘖UI违法哈维佛阿文hi服务 "
                    });
                ListData.Rows.Add(
                    new object[] 
                    { 
                       // "Distinguished Encoding Rules  ",
                        "过谁丢发货未付哈尔发我份那份辣口味发文分蘖UI违法哈维佛阿文hi服务28;CellId[3]:FXP0290DGWFE90228;"
                    });
                ListData.Rows.Add(
                    new object[] 
                    { 
                        //"electronic codebook  ", 
                        "P过谁丢发货未付哈尔发我份那份辣口味发文分蘖UI违法哈维佛阿文hi服务,请检查 " 
                    });
            }

    然后在Button事件下面这样写; 就是调用那个FillDataTable();再加个ID啥的;

      private void button1_Click(object sender, EventArgs e)
            {
                
                this.FillDataTable();
                this.listBox1.Enabled = false;
                this.listBox1.Items.Clear();
    
                for (int i = 0; i <= ListData.Rows.Count - 1; i++)
                {
                    this.listBox1.Items.Add(i);
                    //this.listBox1.Items.Add(i + ListData.Rows[i]["Text"].ToString());
                }
                this.listBox1.Enabled = true;
            }

    做完以上操作之后,选中Listbox  查看事件;

    新增两个事件; 还有

    新建这两个事件;开始重新绘制Listbox;

    代码如下:

      private void listBox1_MeasureItem(object sender, MeasureItemEventArgs e)
            {
    
                Graphics gfx = e.Graphics;
                int number = e.Index + 1;
    
                //string xcaption = ListData.Rows[e.Index]["Caption"].ToString();
                string dtext = ListData.Rows[e.Index]["Text"].ToString();
    
                SizeF f1 = gfx.MeasureString(number.ToString() + ".", nfont);
               // SizeF f11 = gfx.MeasureString(xcaption, nfont);
    
                Rectangle rect = new Rectangle(leftMargines + (int)f1.Width + 8, topMargines + (int)f1.Height + distance, this.listBox1.ClientSize.Width - leftMargines - (int)f1.Width - 8, e.ItemHeight);
                StringFormat stf = new StringFormat();
                stf.FormatFlags = StringFormatFlags.FitBlackBox;
                SizeF f2 = gfx.MeasureString(dtext, tfont, rect.Width, stf);
                int Temp = e.ItemWidth;
    
                //if (f2.Width < (leftMargines + f1.Width + 8 + f11.Width)) 
                //    Temp = leftMargines + (int)f1.Width + 8 + (int)f11.Width + 4;
                if (f2.Width < (leftMargines + f1.Width + 8))
                    Temp = leftMargines + (int)f1.Width + 8 + 4;//行间距
    
    
                e.ItemHeight = topMargines + (int)f1.Height + distance + (int)f2.Height + 8 + 8;//上下高度
            }
    
            private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
            {
                int number = e.Index + 1;
    
    			//string xcaption = ListData.Rows[e.Index]["Caption"].ToString();
                string dtext = ListData.Rows[e.Index]["Text"].ToString();
    
                if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
                {
                    Graphics gfx = e.Graphics;
    
                    Pen pen = new Pen(Brushes.SteelBlue, 0.4f);
    
                    gfx.DrawRectangle(pen, e.Bounds.X + 4, e.Bounds.Y + 4, e.Bounds.Width - 8, e.Bounds.Height - 8);
                    gfx.FillRectangle(Brushes.LightSteelBlue, e.Bounds.X + 5, e.Bounds.Y + 5, e.Bounds.Width - 9, e.Bounds.Height - 9);
    
    
                    gfx.DrawString(number.ToString() + ".", nfont, Brushes.Black, e.Bounds.X + leftMargines, e.Bounds.Y + topMargines);
                    SizeF f1 = gfx.MeasureString(number.ToString() + ".", nfont);
    
                    //gfx.DrawString(xcaption, nfont, Brushes.SteelBlue, e.Bounds.X + leftMargines + f1.Width + 8, e.Bounds.Y + topMargines);
                    //SizeF f11 = gfx.MeasureString(xcaption, nfont);
    
                    Rectangle rect = new Rectangle(e.Bounds.X + leftMargines + (int)f1.Width + 8, e.Bounds.Y + topMargines + (int)f1.Height + distance, this.listBox1.ClientSize.Width - leftMargines - (int)f1.Width - 8, this.ClientSize.Height);
                    StringFormat stf = new StringFormat();
                    stf.FormatFlags = StringFormatFlags.FitBlackBox;
    
                    gfx.DrawString(dtext, tfont, Brushes.Black, rect, stf);
    
    
                }
                else
                {
                    Graphics gfx = e.Graphics;
                    gfx.FillRectangle(Brushes.White, e.Bounds.X + 4, e.Bounds.Y + 4, e.Bounds.Width - 7, e.Bounds.Height - 7);
                    gfx.FillRectangle(Brushes.SteelBlue, e.Bounds.X + 4, e.Bounds.Y + e.Bounds.Height - 8, e.Bounds.Width - 8, 1);
                    Pen pen = new Pen(Brushes.SteelBlue, 0.4f);
    
                    gfx.DrawString(number.ToString() + ".", nfont, Brushes.Black, e.Bounds.X + leftMargines, e.Bounds.Y + topMargines);
                    SizeF f1 = gfx.MeasureString(number.ToString() + ".", nfont);
    
                    //gfx.DrawString(xcaption, nfont, Brushes.SteelBlue, e.Bounds.X + leftMargines + f1.Width + 8, e.Bounds.Y + topMargines);
                    //SizeF f11 = gfx.MeasureString(xcaption, nfont);
    
                    Rectangle rect = new Rectangle(e.Bounds.X + leftMargines + (int)f1.Width + 8, e.Bounds.Y + topMargines + (int)f1.Height + distance, this.listBox1.ClientSize.Width - leftMargines - (int)f1.Width - 8, this.ClientSize.Height);
                    StringFormat stf = new StringFormat();
                    stf.FormatFlags = StringFormatFlags.FitBlackBox;
                    gfx.DrawString(dtext, tfont, Brushes.Black, rect, stf);
                }
    			e.DrawFocusRectangle();
    		
            }

    然后在窗体Load事件中写入以下代码:

     private void ListAutoLine_Load(object sender, EventArgs e)
            {
                nfont = new Font("Microsoft Sans Serif", 10, FontStyle.Bold);
                tfont = new Font("Microsoft Sans Serif", 10, FontStyle.Regular);
                colorn = Color.Black;
                leftMargines = 8;
                topMargines = 10;
                distance = 12;
            }

    新建窗体SizeChange事件:

     private void ListAutoLine_SizeChanged(object sender, EventArgs e)
            {
                listBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
                listBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable;
            }

    好了,以上代码就实现了ListBox自动换了;写个事件测试测试;

      private void listBox1_Click(object sender, EventArgs e)
            {
                
                MessageBox.Show("当前选中-[" + listBox1.SelectedItem.ToString().Trim() + "]-项");
                MessageBox.Show(getListText(listBox1.SelectedItem.ToString().Trim()));
            }
    

     

    基本上是没有什么问题的啦;

    效果图为:

    就这样子了;

    以上就是本期全部内容了;如有不当之处,还请指正,感谢;欢迎留言讨论;

     

    展开全文
  • c# listbox使用Following operations are performing on the ListBox: 在ListBox上执行以下操作: Add 加 Remove 去掉 Clear 明确 Get selected items 获取所选项目 etc... 等等... Follow controls are using in ...

    c# listbox使用

    Following operations are performing on the ListBox:

    在ListBox上执行以下操作:

    1. Add

    2. Remove

      去掉

    3. Clear

      明确

    4. Get selected items

      获取所选项目

    5. etc...

      等等...

    Follow controls are using in the application:

    在应用程序中使用以下控件:

    • txtInput (TextBox) : To take user input.

      txtInput (TextBox):接受用户输入。

    • lblCount (Label) : To show count of list-box items.

      lblCount (标签):显示列表框项目的计数。

    • lstItem (ListBox) : List-box to contain list of items.

      lstItem (ListBox):包含项目列表的列表框。

    • btnAdd (Button) : To add entered item into list.

      btnAdd (按钮):将输入的项目添加到列表中。

    • btnRemove (Button) : To remove selected item from list.

      btnRemove (按钮):从列表中删除选定的项目。

    • btnShow (Button) : To show selected item in message-box.

      btnShow (按钮):在消息框中显示选定的项目。

    • btnClear (Button) : To clear complete list.

      btnClear (按钮):清除完整列表。

    Example (form design):

    示例(表单设计):

    List Box Example in C#

    C# Source Code:

    C#源代码:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace MyWinApp
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void btnAdd_Click(object sender, EventArgs e)
            {
                lstItem.Items.Add(txtInput.Text);
                txtInput.Text = "";
                lblCount.Text = "Count: " + lstItem.Items.Count;
            }
    
            private void btnRmv_Click(object sender, EventArgs e)
            {
                lstItem.Items.RemoveAt(lstItem.SelectedIndex);
                lblCount.Text = "Count: " + lstItem.Items.Count;
            }
    
            private void btnShow_Click(object sender, EventArgs e)
            {
                MessageBox.Show(lstItem.SelectedItem.ToString());
            }
    
            private void btnClr_Click(object sender, EventArgs e)
            {
                lstItem.Items.Clear();
                lblCount.Text = "Count: " + lstItem.Items.Count;
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                lblCount.Text = "Count: " + lstItem.Items.Count;
            }
        }
    }
    
    

    In the above code, we used button click events for performing tasks. We used following methods:

    在上面的代码中,我们使用了按钮单击事件来执行任务。 我们使用以下方法:

    1. Listbox.Itmes.Add(text)

      Listbox.Itmes.Add(文本)

    2. Listbox.Itmes.RemoveAt(index)

      Listbox.Itmes.RemoveAt(index)

    3. Listbox.Itmes.Clear()

      Listbox.Itmes.Clear()

    We used some properties like:

    我们使用了一些属性,例如:

    1. lstItem.Items.Count

      lstItem.Items.Count

    2. lstItem.SelectedIndex

      lstItem.SelectedIndex

    3. lstItem.SelectedItem

      lstItem.SelectedItem

    翻译自: https://www.includehelp.com/dot-net/listbox-example-in-c-sharp.aspx

    c# listbox使用

    展开全文
  • C# listBox绑定数据库

    2010-03-01 15:41:55
    C# listBox绑定数据库 以及DropDownList 资源大家一起分享
  • C#listBox内容用鼠标拖动和按钮移动实现排序功能 VS2010
  • c# listbox显示数据库的内容c# listbox显示数据库的内容
  • C# ListBox支持右键复制

    千次阅读 2019-09-10 20:48:31
    C# ListBox支持右键复制 public ListBoxForm() { InitializeComponent(); // 支持右键拷贝 ContextMenuStrip listboxMenu = new ContextMenuStrip(); ToolStripMenuItem rightMenu = new ...

    C# ListBox列表框支持右键复制
    ListBox列表框仅支持查看,操作上有多不便,特别是想要将窗体上显示的结果复制出来,但是空间不支持,耽误时间和操作。现在实现右键复制,这样效率会高很多。

    public ListBoxForm()
    {
        InitializeComponent();
    
        // 支持右键拷贝
        ContextMenuStrip listboxMenu = new ContextMenuStrip();
        ToolStripMenuItem rightMenu = new ToolStripMenuItem("Copy");
        rightMenu.Click += new EventHandler(Copy_Click);
        listboxMenu.Items.AddRange(new ToolStripItem[] { rightMenu });
        this.propertyListBox.ContextMenuStrip = listboxMenu;
    }
    
    展开全文
  • C# ListBox 的使用

    2010-03-02 20:00:30
    C# ListBox 的使用 不错的资源 资源分享,你会,我会,大家会,才是真的会
  • C# ListBox Item双击事件

    千次阅读 2019-11-08 10:28:34
    C# ListBox Item双击事件 在一次MediaPlayer的练习中,用到了listbox控件,主要的用处是,双击Item,将播放选中的文件,但是,若双击空白处,由于程序得不到相关的参数,就会挂掉,当然也可以利用下面语句来过滤这种...

    C# ListBox Item双击事件

    在一次MediaPlayer的练习中,用到了listbox控件,主要的用处是,双击Item,将播放选中的文件,但是,若双击空白处,由于程序得不到相关的参数,就会挂掉,当然也可以利用下面语句来过滤这种情况:

    if(ListBox1.SelectIndex<0)
    {
    	return;
    }
    

    然而,当其中一个条目Focus时,双击空白,播放器将播放Focused Item。基于这种情况,博主意欲寻求Item_DoubleClick事件来解决此问题,查阅相关资料的到精彩的解决方案。
    首先给出引用相关资料:

    1. 引用一段问题描述(若理解问题原因,可跳过)

    功能很简单,双击Item,将Item的值传TextBox;本来认为很基础很简单的问题,只要在控件的DoubleClick中判断一下就可以了,却没曾想没那么容易,遇到个棘手的问题。网上搜索相关资料,发现这个问题很多人都遇到过,不过解决方案都不怎么好。除了了那引自JS的解决方法还是针对Web的,我想在WinForm下解决,各位看看有什么好方法。
    起初加上if (ListBox1.Items.Count == 0) return;这一句,则在ListBox1的Item为空的时候返回,可在不为空的时候,点击空白处还是会出现问题。于是又判断SelectedIndex,为-1返回,可这么做还是有个问题,在未选中的时候一切正常,但在有选中的Item的时候问题又出现了,我双击空白处,可它把选中的那个Item的值传给TextBox了。
    在论坛里还看到一位仁兄是通过将剩下的Item填充为空,然后判断为空返回,但总感觉不是根本解决之道,

    1. 解决方案
    void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
            {
            // get index Clicked & DoubleClick BlankSpace return NoMatches
                int index = this.listBox1.IndexFromPoint(e.Location);
    		    if (index != System.Windows.Forms.ListBox.NoMatches)
                {
                   return;
                }
                 MessageBox.Show(index.ToString());
                    //do what you wanna do
            }
    
    1. 参考链接
      代码出处
      控件介绍之NoMatches
    展开全文
  • C# ListBox列表赋值 listBox1.Items.Add(istr); C# comboBox下拉列表获取所选值 //方法1 int comNum = comboBox1.SelectedIndex; istr = comboBox1.GetItemText(comboBox1.Items[comNum]); //方法2 int comNum = ...
  • c#listbox使用详解和常见问题解决
  • C# ListBox列表赋值的两种方式

    千次阅读 2019-08-08 21:34:57
    C# ListBox列表赋值 C#ListBox控件常用来显示列表信息,如显示指定文件夹下所有文件的路径等。 ListBox控件绑定数据的两种方式: 方式一:为ListBox控件逐一添加数据项 DirectoryInfo dir = new DirectoryInfo...
  • C# listBox1 总结

    2012-03-22 18:55:19
    C# listBox1 删除选中项  while (listBox1.SelectedItems.Count > 0)  {  listBox1.Items.Remove(listBox1.SelectedItems[0]);  }   C# listBox1 添加
  • C# ListBox实现显示插入最新的数据的方法 原文:C# ListBox实现显示插入最新的数据的方法 在我们使用ListBox控件时,如果我们在里面不断的添加一条条数据,但是在我们添加的数据过多超过了ListBox显示...
  • C#ListBox简单应用例子

    2015-09-20 17:33:34
    一个C#ListBox简单应用例子。 实现在ListBox控件间进行数据交换。
  • C# listbox 的用法

    2012-12-02 17:35:00
    C#listbox的用法 (2012-12-2 10:44:33) 1. 属性列表: SelectionMode 组件中条目的选择类型:None-根本不允许任何选择;One-默认值,只选择单个选项;MultiSimple-简单的多项...
  • C# ListBox 空白区域自绘 今天学习ListBox用法,对ListBox进行了自绘,实现效果如下图所示: 如图所示,ListBox下方有大片的空白,不够美观,于是修改代码将下方空白区域背景色调整为与上方列表项一致,如下图所示...
  • 在本文中我们给大家分享了关于C#ListBox中的Item拖拽的功能代码分享,对此有需要的朋友参考学习下。
  • C#ListBox用法

    千次阅读 2017-07-13 17:23:36
    转载自:...如果项总数超出可以显示的项数,则自动向ListBox控件添加滚动条。ListBox控件列表中的每个元素称为项。图1所示为ListBox控件ListBox控件 1.功能 ListBox控件显示较长的选项列表,
  • c# ListBox 删除选定的多项 本人在网上找了好久,没找到。自己写了一个,参考了好几本书,和一些网络资源,几经修改,终于成功!虽然简单,但对我学c#菜鸟还是挺难得!还附带了一个错误的代码!本人未找到错误,但是...
  • 0 && listBox1.SelectedIndex < listBox1.Items.Count) textBox2.Text =Convert.ToString( listBox1.Items[listBox1.SelectedIndex]); } private void button2_Click(object sender, EventArgs e) {//点击删除按钮,...
  • c# ListBox控件

    2017-10-18 19:22:00
    ListBox控件可以一次呈现多个项,并且语序对控件中的选项进行选择操作,ListBox类公开Items属性,它是一个集合,类型为ListBox.ObjectCollection,是ListBox的一个嵌套类,该类实现了IList接口,可以调用Add方法向...
  • c# listbox中的文件随机播放,直到全播放完为止。 实现一个视频播放器,顺序播放做好了,现需要一个随机播放的功能。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,987
精华内容 794
关键字:

c#listbox

c# 订阅