listBox 中怎么获取选中项的值

这些人 2011-12-10 12:01:37
我想做一个目录、我的代码是这样的
while (histo.Read())
{
this.listBox1.Items.Add(dateTimePicker3.Value.ToShortDateString() + " " + histo["D_Title"].ToString());
this.listBox1.SelectedValue = histo["D_ID"].ToString();//这句不知道这样写对不对
}

我是想通过选中listBox中显示的日期和标题来获得数据库中与之相对应的记录ID,ID可以用来查询该条记录的其他详细信息。

textBox14.Text = listBox1.SelectedValue.ToString();//我用这样获取ID是错误的

谁能教教我、刚学C#的新手、犯愁中~ 求指教 、感激不尽!
...全文
4529 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
这些人 2011-12-11
  • 打赏
  • 举报
回复
谢谢大家的帮助!!问题解决了、不过这里用别名“title” 好像只能显示 D_Title 一个。我在数据库里又加了一个字段 >.< 直接把 日期 和 标题加到一起来用。现在又遇到了、“设置DataSource属性后无法修改项集合” 的问题,正在解决中
DENQH 2011-12-10
  • 打赏
  • 举报
回复
while (histo.Read())
{
this.listBox1.Items.Add(dateTimePicker3.Value.ToShortDateString() + " " + histo["D_Title"].ToString());
this.listBox1.SelectedValue = histo["D_ID"].ToString();//这句不知道这样写对不对
}
无法绑定两个参数的,用数据源绑定方法
ListBox1.DataSource = list ;
ListBox1.DisplayMember = "Name";
listBox1.ValueMember="D_ID";
DENQH 2011-12-10
  • 打赏
  • 举报
回复
string sql = "Select D_ID, "+dateTimePicker3.Value.ToShortDateString() + " " + D_Title  as title from yourtable";
OleDbDataAdapter Adapter = new OleDbDataAdapter();
DataTable myTable = new DataTable();
using (OleDbConnection connetion = new OleDbConnection(connectionString))//connectionString数据库存连接字串
{
Adapter.SelectCommand = new OleDbCommand(sql, connetion);
Adapter.Fill(myTable);

}
ListBox1.DataSource = myTable ; //这个表示给控件指定的数据源
ListBox1.DisplayMember = "title";//这个表示控制中显示的值
listBox1.ValueMember="D_ID";
这些人 2011-12-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 denqh 的回复:]
while (histo.Read())
{
this.listBox1.Items.Add(dateTimePicker3.Value.ToShortDateString() + " " + histo["D_Title"].ToString());
this.listBox1.SelectedValue = histo["D_ID"].ToString();//这句不知道……
[/Quote]

还是不怎么懂、这里的ListBox1.DataSource = list ; 怎么连接数据源?有没有给了例子
guoyanhong1111 2011-12-10
  • 打赏
  • 举报
回复
ListBox1.DataSource = list ; //这个表示给控件指定的数据源
ListBox1.DisplayMember = "Name";//这个表示控制中显示的值
listBox1.ValueMember="D_ID";//这个表示控制中隐藏的值,一般都会是数据库中某列的ID
this.listBox1.SelectedValue.ToString();//获得选中项的Value值,就是ID的值
this.listBox1.Text;//获得选中项显示的文本值
lsDataDemo.SelectedItem.ToString();//也是获得选中项显示的文本值。
krenyelang 2011-12-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 denqh 的回复:]
while (histo.Read())
{
this.listBox1.Items.Add(dateTimePicker3.Value.ToShortDateString() + " " + histo["D_Title"].ToString());
this.listBox1.SelectedValue = histo["D_ID"].ToString();//这句不知道……
[/Quote]
支持+
覃祖甘 2011-12-10
  • 打赏
  • 举报
回复
需要在一个SelectedIndexChanged事件中,如下代码给你参考
private void lsDataDemo_SelectedIndexChanged(object sender, EventArgs e)
{
//方法1
//lblMessage.Text = lsDataDemo.SelectedItem.ToString();
//方法2通過index,再由idex找到對應的項,此方法有點笨喔~~
int index = lsDataDemo.SelectedIndex;
lblMessage.Text = lsDataDemo.Items[index].ToString();

}
dazhun753 2011-12-10
  • 打赏
  • 举报
回复
你那样去给listbox赋值的时候,它的每一项的value是空的。。所有你用selectvalue找不到你想要得值,可以用selectitem试试,或者你给listbox赋值的时候,把每一项的值也给他,这样就能用selectvalue了
vkv123 2011-12-10
  • 打赏
  • 举报
回复
我也想知道,支持一下!!!!!!!!!!!
绿领巾童鞋 2011-12-10
  • 打赏
  • 举报
回复
textBox14.Text =listBox1.SelectedItem.ToString();
得到当前选中

nimenshishabi 2011-12-10
  • 打赏
  • 举报
回复
无法绑定两个参数的,用数据源绑定方法
ListBox1.DataSource = list ;
ListBox1.DisplayMember = "Name";
listBox1.ValueMember="D_ID";
支持一楼的 就用源绑定,实现比较简单容易

要不楼主就把items中项写死也可以

110,534

社区成员

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

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

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