菜菜紧急求救

cwb210 2008-07-21 10:09:15
this.lv.Items.Add(new ListViewItem(new string[]{"000057"}));
this.lv.Items.Add(new ListViewItem(new string[]{"000058"}));
this.lv.Items.Add(new ListViewItem(new string[]{"000056"}));
this.lv.Items.Add(new ListViewItem(new string[]{"000054"}));
this.lv.Items.Add(new ListViewItem(new string[]{"000053"}));
this.lv.Items.Add(new ListViewItem(new string[]{"000052"}));
this.lv.Items.Add(new ListViewItem(new string[]{"000051"}));
this.lv.Items.Add(new ListViewItem(new string[]{"000050"}));
this.lv.Items.Add(new ListViewItem(new string[]{"000060"}));//这是想显示的产品编号,
this.lv.Items.Add("980005");
this.lv.Items.Add("970005");
this.lv.Items.Add("960005");
this.lv.Items.Add("950005");
this.lv.Items.Add("940005");//这也是要显示的产品编号,2个都能显示在listview控件上



private void textBox1_TextChanged(object sender, System.EventArgs e)
{
liv.Items.Clear();
for (int i=0;i<lv.Items.Count;i++)
{
if (textBox1.Text == lv.Items[i].ToString() )
{
// lv_SelectedIndexChanged(null,null);
ListViewItem lvi = new ListViewItem();

lvi.Tag = lv.Items[i];
// this.textBox1.Tag = lv.Items[i];

lvi.Text = lv.Items[i].ToString().Trim();
// this.textBox1.Text = lv.Items[i].ToString().Trim();

lvi.SubItems.Add(lv.Items[i].ToString().Trim());


lvi.SubItems.Add(lv.Items[i].ToString().Trim());

this.liv.Items.Add( lvi );
return;
}

//这步我想实现在textbox1上要查询的产品编号,能使他在listview控件上选择,
问题是,我在textbox上输入数字(比如我输入“9”) 怎么会是没有该产品呢,那listview上不是明明有9开头的产品吗?想请大虾们帮下帮 看看
...全文
136 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreamsnake 2008-07-25
  • 打赏
  • 举报
回复
最近没空上来,虽然结贴了,仍然再补充一下吧。呵呵。

觉得这是个小问题,所以上次让你跟一下,不过,看起来,你跟踪的效果并不好。

其实,楼上的是对的,你用的是绝对相等,那么,当然就只有刚好是9的才能被找到了。所以,你应该用indexof()这个方法。

跟踪,并不仅仅是看着它运行一遍就可以了,你需要去看每一个相关的变量的值,甚至是表达式的值,然后看看和你预期的结果是否一致。这方面,感觉你还不够细心吧。
cwb210 2008-07-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dreamsnake 的回复:]
没找到你IF的大括号在哪里结束.
如果是在最后,那么,你的ListView里根本就没有内容为"9"的项,所以根本不会走进去.

另外,你一上来就liv.Items.Clear(); 把所有的清空了,哪里还会有任何项存在哦.

这是我发现的两个问题,如果我说的不对,那么你可以跟踪一下,看看问题出在哪里.
[/Quote]
请问 为什么会没有呢?我在comboBox上写同样的代码都能用的,就是因为不能多选,所以我想看看能不能换成是textbox与listview2个控件来完成我想要的目的,
至于这个 liv.Items.Clear(); 这是边上的另一个控件了,不过也是listview控件,这个liv主要是用来存放查询出来的产品的,所以要先把它清空
wwei466 2008-07-22
  • 打赏
  • 举报
回复
if (textBox1.Text == lv.Items[i].ToString() )
你用的是==,我没看到你的lv中有9的那一项,如果你要找lv中包含9的那一项,还得写代码
cwb210 2008-07-22
  • 打赏
  • 举报
回复
怎么没人帮我看下呢 ,,,,等待中
cwb210 2008-07-21
  • 打赏
  • 举报
回复
没有大虾帮忙看下吗?麻烦帮我看看是哪错了,新学无知,请前辈指教
cwb210 2008-07-21
  • 打赏
  • 举报
回复
if (lv.Items[i].ToString().indexof(textBox1.Text ) >= 0)
这样不行的,string并不包含对indexof的定义
blue_summer 2008-07-21
  • 打赏
  • 举报
回复
if (lv.Items[i].ToString().indexof(textBox1.Text ) >= 0)
试试这个
cwb210 2008-07-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wyc_xiaoben 的回复:]
if (textBox1.Text == lv.Items[i].ToString() )

这个是????
[/Quote]
这个意思代表的是:在textbox上输入的数字通过循环查询lv里面的数据,要是lv里面的数据有何textbox上的数字相等的,他就提示,不过可能是我别的什么地方错了,导致不能进行
大虾们再麻烦看看,我现在有点别的事情要做,不能只顾在这了,明天一定结帖,谢谢了萨
wyc_xiaoben 2008-07-21
  • 打赏
  • 举报
回复
if (textBox1.Text == lv.Items[i].ToString() )

这个是????
dreamsnake 2008-07-21
  • 打赏
  • 举报
回复
没找到你IF的大括号在哪里结束.
如果是在最后,那么,你的ListView里根本就没有内容为"9"的项,所以根本不会走进去.

另外,你一上来就liv.Items.Clear(); 把所有的清空了,哪里还会有任何项存在哦.

这是我发现的两个问题,如果我说的不对,那么你可以跟踪一下,看看问题出在哪里.

111,098

社区成员

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

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

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