1.如何真正的退出程序,而不是隐藏窗体?
Windows Mobile中当你点击X的时候,并不是真正的关闭窗体,而是隐藏窗体,需要在应用程序的每个Form中调用一个函数才可以。
private void InfoMain_Closed(object sender, EventArgs e)
{
Application.Exit();
}
每个窗体的Closed事件中加入Application.Exit();才能真正的退出程序。
2.如何让窗体跟着输入法窗口上移?
当输入文字时需要打开输入法,而当打开输入法的时候输入法会直接盖掉下层的程序界面,导致有时候窗体下方的控件无法进行操作(输入文字,点击按钮等),那么这个时候就需要我们在输入法状态变更的时候出发一些事件,让输入法窗口不要盖住程序。
首先每次创建Form,最好都先添加一个panel做控件的上层容器,设定好相对panel的位置,这样控件才会根据panel的变化而变化。之后给InputPanel的EnabledChanged事件加入下面的代码:
private void inputPanel1_EnabledChanged(object sender, EventArgs e)
{
if (inputPanel1.Enabled)
{
this.panel1.Dock = DockStyle.None;
this.panel1.Height = inputPanel1.VisibleDesktop.Height;
}
else
{
this.panel1.Dock = DockStyle.Fill;
}
}
当输入法打开的时候panel不再占据全屏,而是跟除了输入法外的可视化范围一样高。输入法关闭时,panel恢复占据全屏。当然panel的AutoScroll要设定为true。
3.如何创建非全屏Form?
首先需要你创建一个全屏的Form,然后将以下参数设定为指定值
ControlBox = false;
FormBorderStyle = none;
MinimizeBox = false;
WindowState = normal;
Size = 设置为你想要的大小即可。
这样的非全屏窗体不带边框不带标题,只有一个光秃秃的Form。如果你需要那些边框和标题使得界面更加美观,则可以参考以下文章:
http://www.christec.co.nz/blog/archives/134
牵扯到了一些对底层的操作。
4.【实用技巧】Windows Mobile 手机连接电脑时,如何使用GPRS上网,同时跟电脑保持连接。(USB和GPRS共存问题) (3-19 22:08)
5.如何提高Windows Mobile中 Http上传文件的稳定性?
其实上传文件最好还是用FTP,因为比较稳定,各方面也很成熟。如果是和业务系统相关的一些东西,也不要紧,客户端上传完成之后请求下服务端的一个服务,通知他业务数据上传完毕,然后服务端去做一些操作,之后可以回应给客户端就可以了。
但如果非要用HTTP的话,也不要紧,虽然无线网络用HTTP传输文件不是太稳定,但总体上还是不错的,只是你需要设计一套断点续传机制,来保证就算网络发生异常了,也可以接着上次的再传。除了使用断点续传机制,还有一个技巧,就是让客户端和服务端的连接超时时间(ConnectionTimeout)尽可能的长些,比如设置为200秒,这是在开发过程中总结出来的,我测试过很多次,发现如果超时时间很长的话,多数大文件(> 500kb)其实一次就可以传递上去,之前传不上去,多数是因为连接超时,而服务端如果使用tomcat,抛出Socket read timeout异常之后,客户端多数收不到,因为此时的客户端还在朝Request中的Outputstream写数据,还没有走到request.GetResponse()这一步,这就造成了,客户端发送完数据之后才知道客户端异常了,浪费了很多流量,也降低了很多效率,大家可以注意一下。
6.如何建立GPRS连接?
移动:
XmlDocument configDoc = new XmlDocument();
configDoc.LoadXml(
"<wap-provisioningdoc>" +
"<characteristic type=\"CM_GPRSEntries\">" +
"<characteristic type=\"xxx\">" +
"<parm name=\"DestId\" value=\"{ADB0B001-10B5-3F39-27C6-9742E785FCD4}\" />" +
"<parm name=\"UserName\" value=\"1\" />" +
"<parm name=\"Password\" value=\"1\" />" +
"<parm name=\"Domain\" value=\"\" />" +
"<characteristic type=\"DevSpecificCellular\">" +
"<parm name=\"GPRSInfoValid\" value=\"1\" />" +
"<parm name=\"GPRSInfoAccessPointName\" value=\"xx.js\" />" +
"</characteristic>" +
"</characteristic>" +
"</characteristic>" +
"</wap-provisioningdoc>"
);
ConfigurationManager.ProcessConfiguration(configDoc, false);
电信:
XmlDocument configDoc = new XmlDocument();
configDoc.LoadXml(
"<wap-provisioningdoc>" +
"<characteristic type=\"CM_GPRSEntries\">" +
"<characteristic type=\"jsmsa\">" +
"<parm name=\"DestId\" value=\"{ADB0B001-10B5-3F39-27C6-9742E785FCD4}\" />" +
"<parm name=\"UserName\" value=\"xxxx.js\" />" +
"<parm name=\"Password\" value=\"xxxx\" />" +
"<parm name=\"Domain\" value=\"\" />" +
"<parm name=\"Phone\" value=\"#777\"/>" +
"<parm name=\"DeviceType\" value=\"modem\"/>" +
"<parm name=\"DeviceName\" value=\"Cellular Line\"/>" +
"<parm name=\"Enabled\" value=\"1\"/>" +
"<parm name=\"RequirePw\" value=\"1\"/>" +
"<parm name=\"DeviceSpecificRAW\" value=\"b4010000b4010000b4010000010000000f0000000100000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"/>" +
"</characteristic>" +
"</characteristic>" +
"</wap-provisioningdoc>"
);
ConfigurationManager.ProcessConfiguration(configDoc, false);
修改连接的优先级:
string configpreferred = " <wap-provisioningdoc> " +
" <characteristic type=\"cm_planner\"> " +
" <characteristic type=\"preferredconnections\"> " +
" <parm name=\"{ADB0B001-10B5-3F39-27C6-9742E785FCD4}\" value=\"jsmsa\" /> " +
" </characteristic> " +
" </characteristic> " +
" </wap-provisioningdoc> ";
7.发起和断开连接
这两个方法需要另外
两个类的协助
public static void MakeConnection()
{
try
{
ConnectionManager connectManager = new ConnectionManager();
int idx = -1;
List<ConnectionManager.CONNMGR_DESTINATION_INFO> lstIdentifiers = connectManager.EnumConnDestinations();
for (int i = 0; i < lstIdentifiers.Count; i++)
{
if ("Internet 连接".Equals(lstIdentifiers[i].Description))
{
idx = i;
break;
}
}
if (idx > -1)
{
connectManager.EstablishConnection((uint)idx);
}
}
catch
{
}
}
public static void Disconnect()
{
try
{
RASManager.RASCONN[] conns = RASManager.GetRASConnections();
if (conns != null && conns.Length > 0)
{
foreach (RASManager.RASCONN conn in conns)
{
try
{
RASManager.HangUp(conn.hRasConnHandle);
}
catch (Exception ex)
{
}
}
}
}
catch
{
}
}
---------------------------------------------------------
专注移动开发
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
posted on 2008-10-07 13:02
TiGERTiAN 阅读(1795)
评论(0) 编辑 收藏 所属分类:
DotNet 、
Windows Mobile