ListBox的Item怎么可以包含显示的文本属性和一个隐含属性?或者有没有类似的第三方控件? ListBox的Item,我想让它显示一个文本信息,又同时包含一个隐含的信息Item怎么可以包含显示的文本属性和一个隐含属性?或者有没有类似的第三方控件? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不需要第三方控件先定义一个类: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; DisplayMember = "显示的内容";ValueMember = "值"; 要在你的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; } 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()); }} 请教图片分辨率问题 请教小段代码的错误 求一道WINFOR上传到远程的思路,谢谢 net下如何不显示某一菜单项,但可以通过这个菜单设置的快捷键来调用这个功能 socket发送信息时 如果数据过大 要发送好几次 接收方如何得到这个完整的消息? 大家帮忙看下datalist问题啊 求助 关于访问路由器内的用户的问题 请问AspNetPager1怎么使用呀,那个帮帮我吧 对于事件的两个参数sender和e的疑问 有关B/S与三层结构的讨论!!!!请大家关注!!!!! listbox问题 web form 中怎么搞回车事件呢?
先定义一个类:
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;
ValueMember = "值";
{
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;
}
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());
}
}