日期:2014-05-18  浏览次数:20911 次

小问题:listview
[code=C#][/code]foreach(ListViewItem item in this.lVw.Items )
{
if(pos.ToString ()==item.Text .ToString ())
{
MessageBox.Show ("该位置有图,请重新操作","提示信息",MessageBoxButtons.OK , MessageBoxIcon.Warning);
}
else
{
  //pb是动态生成的picturebox
pb.Location =new Point ((int)(this.pBx_bjl .Location .X +(i+j)*(pos-1)+i/2),this.pBx .Location .Y );//位置
pb.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage ;
this.pl .Controls .Add (pb);
this.lVw .Items .Add (添加数据的信息);//listview中添加数据
pb.Name =this.lVw .Items[0].Text .ToString ();//绑定
}
}

实现:如果listview的第一列与pos是否相等,如果相等,提示messagebox,如果不 ,则动态生成picturebox添加数据,但是我这么写是动态生成不了的,因为在foreach中遍历,问:有办法不写遍历,就能够判断第一列中所有的数据和if中的pos的关系么

------解决方案--------------------
给每个动态生成的控件创建唯一的ID

每个循环前 pb 都应该 new 一下呀.
------解决方案--------------------
!!!
------解决方案--------------------
楼主你很搞笑的嘛!反反复复的!
------解决方案--------------------
不写遍历用这个ItemDataBound事件应该可以
------解决方案--------------------
................
------解决方案--------------------
探讨
靠,不行,还有点没实现..............

------解决方案--------------------
接分了!!
谢谢!!
------解决方案--------------------
pos是什么变数,也是文字列吗?
------解决方案--------------------
???
不管了先接分了
------解决方案--------------------
改为for语句.
------解决方案--------------------
走别人的路,让别人无路可走
------解决方案--------------------
先接分
------解决方案--------------------
foreach(ListViewItem item in this.lVw.Items ) 
{
if(pos.ToString ()==item.Text .ToString ()) 

==

for(int i = 0; i < lVw.Items[i].Count; i++
{
if(pos.ToString ()==lVw.Items[i].Text) //都已经Text了还ToString()干什么 

------解决方案--------------------
C# code

bool exist = false;
for(int i=0;i<lVw.Items.Count;i++)
{
    if(pos.ToString() == lVw.Items[i].Text)
        exist = true;
    else
    {
                                        //pb是动态生成的picturebox
        pb.Location =new Point ((int)(this.pBx_bjl .Location .X +(i+j)*(pos-1)+i/2),this.pBx .Location .Y );//位置
        pb.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage ;
        this.pl .Controls .Add (pb);
        this.lVw .Items .Add (添加数据的信息);//listview中添加数据
        pb.Name =this.lVw .Items[0].Text .ToString ();//绑定
    } 
}
if(exist)
{
    MessageBox.Show ("位置"+pos.ToString()+"有图,请重新操作","提示信息",MessageBoxButtons.OK ,  MessageBoxIcon.Warning); 
}

------解决方案--------------------
解决问题没?

------解决方案--------------------
可以增加一个计数器变量,用它来判断!!
------解决方案--------------------
貌似自问自答