winform 窗体加载问题

问题描述

我现在做了个带地图的窗体,点击窗体时地图加载较慢就导致这个窗体等地图加载完才显示出来,publicpartialclassWaybillDispatch:DockContent{privateGMapOverlaymarkersOverlay=newGMapOverlay("markers");//放置marker的图层publicWaybillDispatch(){InitializeComponent();try{System.Net.IPHostEntryer=System.Net.Dns.GetHostEntry("ditu.google.cn");}catch{mapControl.Manager.Mode=AccessMode.CacheOnly;MessageBox.Show("Nointernetconnectionavaible,goingtoCacheOnlymode.","GMap.NETDemo",MessageBoxButtons.OK,MessageBoxIcon.Warning);}mapControl.CacheLocation=Environment.CurrentDirectory+"\GMapCache\";//缓存位置mapControl.MapProvider=GMapProviders.GoogleChinaMap;//googlechina地图mapControl.MinZoom=2;//最小比例mapControl.MaxZoom=24;//最大比例mapControl.Zoom=10;//当前比例mapControl.ShowCenter=false;//不显示中心十字点mapControl.DragButton=System.Windows.Forms.MouseButtons.Left;//左键拖拽地图mapControl.Position=newPointLatLng(32.064,118.704);//地图中心位置:南京mapControl.Overlays.Add(markersOverlay);mapControl.MouseClick+=newMouseEventHandler(mapControl_MouseClick);}}

,这个可以用多线程进行处理么?想要的效果是窗体能够正常打开,地图让它自己慢慢加载,窗体不是假死状态。请问应该怎么处理呢?

解决方案

解决方案二:
问题是你必须修改mapControl通信的部分,加载地图的代码改为多线程如果这个控件不是你自己做的,那没什么办法.
解决方案三:
可以做个loading界面,地图加载完成后再显示主窗口

时间: 2024-11-01 23:43:29

winform 窗体加载问题的相关文章

Winform打开窗体,在窗体加载完数据前如何显示正在加载效果。。

问题描述 背景:软件是一个左右栏布局的结构,左边为菜单,右边是要打开的窗体显示区域.效果:点击左边菜单,右边打开对应窗体1.由于有些窗体在打开前需要预先加载一些数据,数据过多的时候,会出现窗体卡住的情况我自己做的是在Load的事件里面开启一个线程,来异步加载.但是在加载完后把数据赋给控件的时候,特别麻烦,调用控件的BeginInvoke方法.如何判断目标窗体加载完成,如何在完成后通知Loading效果关闭...求指点,有没有其他好的办法. 解决方案 解决方案二:通过事件通知.目标窗体加载完成后发

winform程序使用entity framework框架连接数据库,如何在窗体加载的时候预连接数据库一下?

问题描述 如题,人家说entityframework是自助连接,都是在有数据库操作的时候自己连接但是到用到的时候再连接发现速度很慢,查询第一条的时候要卡上7到8秒钟但是查询第二条基本上就是秒查询啊.这个反差受不鸟啊..有没有方法在窗体加载的时候就连接上数据库?知道的大牛回答一下,小弟感激不尽. 解决方案 解决方案二:那你在初始化代码里面随便以异步的方式执行个查询就可以了解决方案三:启动的时候,开启一个新线程,执行一次查询,这样神不知鬼不觉的绕过第一次慢的现象

给.NET中的Windows窗体加载Xp样式

window|加载 给.NET中的Windows窗体加载Xp样式 作者:Heath Stewart 介绍 当Windows XP 带着他特有的可视化样式或者主题发布时,许多人为他拥有的华丽界面而兴奋.然而,当.NET1.0正式版本发布的时候,许多人包括我自己为Windows 窗体不支持Windows XP 的可视化样式而失望.我对可视化样式的API函数和微软的.NET框架开发文档进行了一番研究,而后认识到为.NET应用程序加上Xp样式也不是很难. 下面的将通过一个简单的程序来为你的程序和控件加上

C#背景图片大在程序窗体加载时很卡怎么解决?

问题描述 C#背景图片大在程序窗体加载时很卡怎么解决? 我的C#窗体程序加载了一个背景图片,但是这个图片有几百KB,在运行时感觉很卡,为什么别人的程序加载时感觉很流畅呢?? 解决方案 背景图片读取后,先压缩再设置为背景看看呢 解决方案二: 新建一个空白程序,设置窗体的背景为你的图片,启动卡不卡?如果还卡,就是你的环境.硬件等有问题. 如果不卡,就是你的代码的问题.另外几百kb的图片要看是什么图片,如果是压缩格式的,比如jpg png,那也很可观了. 比如说一部数码相机拍摄的,2048x1536分

mdi子窗体加载闪烁

问题描述 mdi子窗体(继承自定义的窗体),在MDI容器中加载时很慢,闪烁严重,如何解决?声明,如果子窗体直接show加载,不会闪烁,也就是说与子窗体的控件多少无关,只与是否用mdi加载有效. 解决方案 解决方案二:weiluofen.dll参考这个插件,解决子窗体问题解决方案三:是weifenluo.dll参考地址:解决方案四:问题究竟出在那,怎样解决呢?

窗体加载失败!!!

问题描述 加载设计器时遇到一个或多个错误.这些错误在下面列出.一些错误可通过重新生成项目来修复,而另一些错误则需要更改代码.路径的形式不合法.隐藏在System.IO.Path.NormalizePathFast(Stringpath,BooleanfullCheck)在System.IO.Path.NormalizePath(Stringpath,BooleanfullCheck)在System.IO.Path.GetFullPathInternal(Stringpath)在System.Re

为什么事件里的新窗体加载不了呢。求助!

问题描述 voidobjDReadELS_ValueChanged2(intnHandle,doubledValue,shortnerrorCode){if(nHandle<1||nHandle>NUMBER_OF_VALUES)return;CultureInfoci=CultureInfo.CreateSpecificCulture("en-us");try{_ELS[nHandle-1,1].Invoke((MethodInvoker)delegate{_ELS[nH

C#.NET 子窗体事件在父窗体中加载子窗体

问题描述 C#.NET 子窗体事件在父窗体中加载子窗体 C#.NET 父窗体FORM1,已经加载了一个子窗体FORM2 现在想通过FORM2上的按钮,加载另外一个子窗体FORM3到父窗体FORM1的容器panel1中 代码应该怎么写? 解决方案 方法一:通过给panel加载子元素实现 Form2 form = new Form2(); form.FormBorderStyle = FormBorderStyle.None; //隐藏子窗体边框(去除最小花,最大化,关闭等按钮) form.TopL

Ext JS动态加载JavaScript创建窗体的方法_javascript技巧

JavaScript不需要编译即可运行,这让JavaScript构建的应用程序可以变得很灵活.我们可以根据需要动态从服务器加载JavaScript脚本来创建和控制UI来与用户交互.下面结合Ext JS来说明如何从服务器上动态加载JS脚本来动态创建窗体.  1 项目结构: 项目结构如下:其中GetJSUI一般处理程序用来从数据库表中抓取UI配置,并返回到客户端:Contents文件夹下用HTML文件和JS库等.  2 数据库表结构可以用下面的SQL在MSSQL中创建表,其中JavaScriptCo