高分悬赏一个在winForm界面加载用户控件特别慢的问题。

cc214214 2010-08-09 02:11:37
相关代码如下:

//查询该设备中的测试点数量
GetString gt = new GetString();
string str = "testpoint*allList*" + this.userId + "*" + deviceCode + "*endl";
this.sk.SendMessage(str);
String getStr = this.sk.GetMessageByServer();
List<string> listStr = gt.GetLogionString(getStr);
if (listStr.Count >= 3)
{
int myW = 0;//测试位置
int myH = 2;
for (int i = 3; i < listStr.Count; i++)
{
if (myW > 5)
{
myW = 0;
myH++;
}
//创建用户控件
VibrationCtrl vc = new VibrationCtrl();
vc.TextTestPointName = listStr[i + 1]; //自定义的属性
vc.MyDataSouse = findTestPoint(7, Convert.ToInt32(listStr[i]));//绑定数据的
vc.ContextMenuStrip = this.cmsVibrationCtrl;
vc.Location = new Point(vc.Width * myW, vc.Height * myH);
vc.getSelectedListView().SelectedIndexChanged += new EventHandler(bindParameter);//为控件中的listview添加选中事件
this.splitContainer1.Panel2.Controls.Add(vc);//加载到容器中
i += 3;
myW++;
}
}
//查询数据方法
private List<string> findTestPoint(int topNumber,int testPointId)
{
GetString gt = new GetString ();
string sql = string.Format("testpoint*newestParameter*{0}*{1}*endl", topNumber, testPointId);
sk.SendMessage(sql);
String getStr = sk.GetMessageByServer();
List<string> listStr = gt.GetLogionString(getStr);
return listStr;
}

控件代码:

//控件中给listview绑定数据的方法
private void bingdMyDataSouse()
{
//判断数据源是否为空
if (MyDataSouse != null && MyDataSouse.Count > 3)
{
for (int i = 2; i < MyDataSouse.Count; i++)
{
//判断是否显示该参数的值
if (myDataSouse[i + 9] == "1" ? true : false)
{
ListViewItem lvi = new ListViewItem();
lvi.SubItems.Clear();
switch (MyDataSouse[i + 6])
{
case "正常":
lvi.ImageIndex = 0;
break;
case "注意":
lvi.ImageIndex = 1;
break;
case "异常":
lvi.ImageIndex = 2;
break;
default:
lvi.ImageIndex = 2;
break;
}
lvi.SubItems.Add(MyDataSouse[i]);
lvi.SubItems.Add(Math.Round(Convert.ToDouble(MyDataSouse[i + 1]), 2) + MyDataSouse[i + 2]);
lvi.SubItems.Add(MyDataSouse[i + 3]);
lvi.SubItems.Add(MyDataSouse[i + 4]);
lvi.SubItems.Add(MyDataSouse[i + 5]);
lvi.SubItems.Add(MyDataSouse[i + 7]);
lvi.SubItems.Add(MyDataSouse[i + 8]);
this.lvTestPointInfo.Items.Add(lvi);
}
i += 9;
}
}

}



现在情况是这样。从用户创建到加载到容器中的时间特别快。但在界面中显示的效果就是一个一个的蹦出来。然后过一会才有数据绑定在上面。。。请问这个应该怎么办呀0 0?别人说是我的用户控件写的有问题。。。。
...全文
509 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
longhair9711 2010-08-10
  • 打赏
  • 举报
回复
绑定的数据是从哪里来的???
huminghua 2010-08-10
  • 打赏
  • 举报
回复
有没有图片信息!wangsuwenti!
cc214214 2010-08-10
  • 打赏
  • 举报
回复
求帮助。。。
cc214214 2010-08-09
  • 打赏
  • 举报
回复
左边有个树。我选中其中一个设备。然后右侧就会生成这一系列展示测试点信息的控件。。
我试了一下。那个绑定数据的时候有问题。。。。
vc.MyDataSouse = findTestPoint(7, Convert.ToInt32(listStr[i]));//绑定数据的
如果不绑定的话就会很快的展示出来了。。。。
xiaofan_sap 2010-08-09
  • 打赏
  • 举报
回复
先屏蔽掉部分代码 看看到底是哪个地方有问题~
wuyq11 2010-08-09
  • 打赏
  • 举报
回复
检查窗体加载数据,背景图片
合理控制一下界面中控件的个数,去掉不必要的
释放相关资源,数据库处理
exiori 2010-08-09
  • 打赏
  • 举报
回复
哪里用到呢
happyer_longlong 2010-08-09
  • 打赏
  • 举报
回复
什么时候显示,在哪个函数里面显示,请提供下

110,534

社区成员

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

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

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