ListView高手请进,关于C# WinForm中的ListView当前选中行的问题!!! 请教高手们,在我选中ListView某行数据进行编辑后,在数据重载的时候怎么把光标定位到刚刚那行的数据。(即在数据刷新之后光标要自动定位到刚刚被选中编辑的那行。。) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考如下代码:private void button1_Click(object sender, EventArgs e){ #region 记忆选中的项 string key = null; if (listView1.FocusedItem != null) key = listView1.FocusedItem.Text; #endregion 记忆选中的项 #region 重新载入 listView1.Items.Clear(); for (int i = 0; i < 100; i++) listView1.Items.Add(i.ToString()); #endregion 重新载入 #region 恢复记忆 if (key != null) for (int i = 0; i < listView1.Items.Count; i++) { if (listView1.Items[i].Text == key) { listView1.Items[i].Selected = true; listView1.Items[i].Focused = true; listView1.EnsureVisible(i); // 使该项可见 listView1.Focus(); break; } } #endregion 恢复记忆} 直接在ListView的Item中修改,不重新加载项目。 ListView编辑和重载的代码是怎么写的?贴出来瞅瞅。 public void BindLstRoomTypes() { try { RoomType myRt = new RoomType(); RoomTypeInfo model = new RoomTypeInfo(); RoomTypeInfo[] models = myRt.GetRoomType(); this.lstRoomType.Items.Clear(); for (int i = 0; i < models.Length; i++) { ListViewItem Item = new ListViewItem(models[i].RoomTypeID.ToString()); Item.SubItems.Add(models[i].RoomTypeName); Item.SubItems.Add(models[i].RoomPrice.ToString()); Item.SubItems.Add(models[i].RoomPrice2.ToString()); Item.SubItems.Add(models[i].RoomDeposit.ToString()); Item.SubItems.Add(models[i].Rate.ToString()); Item.SubItems.Add(models[i].Beds.ToString()); if (models[i].AirCondition) Item.SubItems.Add("Y"); else Item.SubItems.Add("N"); if (models[i].WaterHeater) Item.SubItems.Add("Y"); else Item.SubItems.Add("N"); if (models[i].BroadBand) Item.SubItems.Add("Y"); else Item.SubItems.Add("N"); if (models[i].Colorcast) Item.SubItems.Add("Y"); else Item.SubItems.Add("N"); if (models[i].IceBox) Item.SubItems.Add("Y"); else Item.SubItems.Add("N"); Item.SubItems.Add(models[i].Re); lstRoomType.Items.Add(Item); } lstRoomType.Items[0].Selected = true; } catch (Exception ex) { MessageBox.Show("读取类型时出错!!!" + ex.Message); } }以上是重载代码!!! public void BindLstRoomTypes(){ try { #region 记忆选中的项 string key = null; if (lstRoomType.FocusedItem != null) key = lstRoomType.FocusedItem.Text; #endregion 记忆选中的项 RoomType myRt = new RoomType(); RoomTypeInfo model = new RoomTypeInfo(); RoomTypeInfo[] models = myRt.GetRoomType(); this.lstRoomType.Items.Clear(); for (int i = 0; i < models.Length; i++) { ListViewItem Item = new ListViewItem(models[i].RoomTypeID.ToString()); Item.SubItems.Add(models[i].RoomTypeName); Item.SubItems.Add(models[i].RoomPrice.ToString()); Item.SubItems.Add(models[i].RoomPrice2.ToString()); Item.SubItems.Add(models[i].RoomDeposit.ToString()); Item.SubItems.Add(models[i].Rate.ToString()); Item.SubItems.Add(models[i].Beds.ToString()); if (models[i].AirCondition) Item.SubItems.Add("Y"); else Item.SubItems.Add("N"); if (models[i].WaterHeater) Item.SubItems.Add("Y"); else Item.SubItems.Add("N"); if (models[i].BroadBand) Item.SubItems.Add("Y"); else Item.SubItems.Add("N"); if (models[i].Colorcast) Item.SubItems.Add("Y"); else Item.SubItems.Add("N"); if (models[i].IceBox) Item.SubItems.Add("Y"); else Item.SubItems.Add("N"); Item.SubItems.Add(models[i].Re); lstRoomType.Items.Add(Item); } #region 恢复记忆 if (key != null) for (int i = 0; i < listView1.Items.Count; i++) { if (lstRoomType.Items[i].Text == key) { lstRoomType.Items[i].Selected = true; lstRoomType.Items[i].Focused = true; lstRoomType.EnsureVisible(i); // 使该项可见 lstRoomType.Focus(); break; } } #endregion 恢复记忆 } catch (Exception ex) { MessageBox.Show("读取类型时出错!!!" + ex.Message); }} 如何循环遍历from窗体上的自定义控件 自己写了个开机自动启动的服务,不知道是哪里有问题,没有完全起作用 WINFORM 有些类好像不能在"服务"当中运行 疯了,再次求助~~ 三个人开发一个项目,每个人都写自己的代码,合并时出现了很多问题,我想把代码放在服务器,在远程开发,在服务器上怎么弄啊 批量数据更新问题 在线等! 怎样构建TreeNodeCollection? 如何验证远程程序的身份 想找一些相关资料书````` 紧急求助:C#捕获用户登录或退出事件 同一个命名空间的类我只想同一个命名空间里的类来访问 如何美化UI界面
private void button1_Click(object sender, EventArgs e)
{
#region 记忆选中的项
string key = null;
if (listView1.FocusedItem != null)
key = listView1.FocusedItem.Text;
#endregion 记忆选中的项 #region 重新载入
listView1.Items.Clear();
for (int i = 0; i < 100; i++)
listView1.Items.Add(i.ToString());
#endregion 重新载入 #region 恢复记忆
if (key != null)
for (int i = 0; i < listView1.Items.Count; i++)
{
if (listView1.Items[i].Text == key)
{
listView1.Items[i].Selected = true;
listView1.Items[i].Focused = true;
listView1.EnsureVisible(i); // 使该项可见
listView1.Focus();
break;
}
}
#endregion 恢复记忆
}
public void BindLstRoomTypes()
{
try
{
RoomType myRt = new RoomType();
RoomTypeInfo model = new RoomTypeInfo(); RoomTypeInfo[] models = myRt.GetRoomType();
this.lstRoomType.Items.Clear();
for (int i = 0; i < models.Length; i++)
{
ListViewItem Item = new ListViewItem(models[i].RoomTypeID.ToString());
Item.SubItems.Add(models[i].RoomTypeName);
Item.SubItems.Add(models[i].RoomPrice.ToString());
Item.SubItems.Add(models[i].RoomPrice2.ToString());
Item.SubItems.Add(models[i].RoomDeposit.ToString());
Item.SubItems.Add(models[i].Rate.ToString());
Item.SubItems.Add(models[i].Beds.ToString()); if (models[i].AirCondition)
Item.SubItems.Add("Y");
else
Item.SubItems.Add("N");
if (models[i].WaterHeater)
Item.SubItems.Add("Y");
else
Item.SubItems.Add("N");
if (models[i].BroadBand)
Item.SubItems.Add("Y");
else
Item.SubItems.Add("N");
if (models[i].Colorcast)
Item.SubItems.Add("Y");
else
Item.SubItems.Add("N");
if (models[i].IceBox)
Item.SubItems.Add("Y");
else
Item.SubItems.Add("N");
Item.SubItems.Add(models[i].Re); lstRoomType.Items.Add(Item);
}
lstRoomType.Items[0].Selected = true; }
catch (Exception ex)
{
MessageBox.Show("读取类型时出错!!!" + ex.Message);
}
}以上是重载代码!!!
{
try
{
#region 记忆选中的项
string key = null;
if (lstRoomType.FocusedItem != null)
key = lstRoomType.FocusedItem.Text;
#endregion 记忆选中的项 RoomType myRt = new RoomType();
RoomTypeInfo model = new RoomTypeInfo(); RoomTypeInfo[] models = myRt.GetRoomType();
this.lstRoomType.Items.Clear();
for (int i = 0; i < models.Length; i++)
{
ListViewItem Item = new ListViewItem(models[i].RoomTypeID.ToString());
Item.SubItems.Add(models[i].RoomTypeName);
Item.SubItems.Add(models[i].RoomPrice.ToString());
Item.SubItems.Add(models[i].RoomPrice2.ToString());
Item.SubItems.Add(models[i].RoomDeposit.ToString());
Item.SubItems.Add(models[i].Rate.ToString());
Item.SubItems.Add(models[i].Beds.ToString()); if (models[i].AirCondition)
Item.SubItems.Add("Y");
else
Item.SubItems.Add("N");
if (models[i].WaterHeater)
Item.SubItems.Add("Y");
else
Item.SubItems.Add("N");
if (models[i].BroadBand)
Item.SubItems.Add("Y");
else
Item.SubItems.Add("N");
if (models[i].Colorcast)
Item.SubItems.Add("Y");
else
Item.SubItems.Add("N");
if (models[i].IceBox)
Item.SubItems.Add("Y");
else
Item.SubItems.Add("N");
Item.SubItems.Add(models[i].Re); lstRoomType.Items.Add(Item);
} #region 恢复记忆
if (key != null)
for (int i = 0; i < listView1.Items.Count; i++)
{
if (lstRoomType.Items[i].Text == key)
{
lstRoomType.Items[i].Selected = true;
lstRoomType.Items[i].Focused = true;
lstRoomType.EnsureVisible(i); // 使该项可见
lstRoomType.Focus();
break;
}
}
#endregion 恢复记忆 }
catch (Exception ex)
{
MessageBox.Show("读取类型时出错!!!" + ex.Message);
}
}