ListBox的Item怎么可以包含显示的文本属性和一个隐含属性?或者有没有类似的第三方控件?

LuckyJan 2005-07-21 04:18:11
ListBox的Item,我想让它显示一个文本信息,又同时包含一个隐含的信息

Item怎么可以包含显示的文本属性和一个隐含属性?

或者有没有类似的第三方控件?
...全文
139 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyi8808 2005-08-21
  • 打赏
  • 举报
回复
using System.Text;
using System.Windows.Forms;

class Items
{
string DisplayMember;
object ValueMember;

public Items(string Text, object Value )
{
DisplayMember = Text;
ValueMember = Value;
}

public object Value
{
get { return ValueMember; }
}

public override string ToString()
{
return DisplayMember;
}
}

class Test : Form
{
ListBox lbx;

Test()
{
Text = "选择一些项目, 然后单击窗口下半部";
lbx = new ListBox();
lbx.Parent = this;
lbx.Width = 243;
lbx.Height = 67;
lbx.IntegralHeight = false;
lbx.ColumnWidth = 60;
lbx.MultiColumn = true;
lbx.BackColor = BackColor;
lbx.BorderStyle = BorderStyle.FixedSingle;
lbx.SelectionMode = SelectionMode.MultiSimple;
for (int i = 1; i <= 9; i++)
{
lbx.Items.Add(new Items("字符串"+i, "第"+i+"项"));
}
for (int i = 10; i <= 18; i++)
{
lbx.Items.Add(new Items("整数"+i, -i));
}
}

protected override void OnClick(System.EventArgs e)
{
StringBuilder sb = new StringBuilder();
foreach (Items o in lbx.SelectedItems)
{
sb.AppendFormat("{0}: [{1}]\n", o, o.Value);
}
MessageBox.Show(sb.ToString());
}

static void Main()
{
Application.Run(new Test());
}
}
tanjy 2005-07-21
  • 打赏
  • 举报
回复
要在你的ListItemObject类中重写toString()方法。就能显示到前面的string

class listObject
{
private string lstStr;
private object lstObj;
public listObject(string str1,object obj)
{
lstStr=str1;
lstObj=obj;
}

public string getLstStr()
{
return lstStr;
}

public object getLstObj()
{
return lstObj;
}
public override string ToString()
{
return lstStr;
}
lovvver 2005-07-21
  • 打赏
  • 举报
回复
DisplayMember = "显示的内容";
ValueMember = "值";
MyLf 2005-07-21
  • 打赏
  • 举报
回复
不需要第三方控件
先定义一个类:
public class ListItemObject
{
private string myDisplay ;
private object myValue ;
public ListItemObject(string displayText, object objValue )
{
this.myDisplay = displayText;
this.myValue = objValue;
}
public string Display
{
get {return myDisplay;}
}
public object Value
{
get{return myValue;}
}
}
在窗体代码里写:
this.listBox1.DisplayMember = "Display";//实际上就是ListItemObject的Display属性
this.listBox1.ValueMember = "Value";//实际上就是ListItemObject的Value属性
this.listBox1.Items.Add(new ListItemObject("第一个值","1"));
this.listBox1.Items.Add(new ListItemObject("第二个值","2"));
就可以显示了,你要读取值的时候记得类型转换,比如:
ListItemObject o = (ListItemObject)this.listBox1.SelectedItem;

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧