小问题: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事件应该可以
[解决办法]
................
[解决办法]
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); }
[解决办法]
解决问题没?
[解决办法]
可以增加一个计数器变量,用它来判断!!
[解决办法]
貌似自问自答