最近用C#做Mobile上系统开发的时候,总被一个小问题困扰。我先简单描述一下。
(开发环境:Win7, VS2008, CHS Mobile 6 Emulator, .NET Compact 2.0)

1. 在项目中添加“用户控件“(假设使用默认名”UserControl1“);
 2. 在项目内的任意一个地方添加一个“DllImport”指令;例如下面两行:
    [DllImport("coredll.dll")]
    public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
 3. 编译项目;
 4. 打开主窗体设计器,在“工具箱”中找到刚刚添加的“UserControl1”(一般在工具箱的顶部);
 5. 把工具箱中的“UserControl1”添加入窗体(Form)内。

正常情况下,你应该可以在窗体内看到“UserControl1”的界面,
然而不幸的是,这个界面内只居中显示一个用户控件的名称
(比如“SmartDeviceProject1.UserControl1”等).
这是一件让人很不解的事情,也让俺很烦心!

通常我们可能会希望能够在设计阶段直接看到“UserControl1”的实际界面,而不只是一个“占位符”。
因为我们可能会对“UserControl1”的背景进行贴图,我们也可能会使用代码限制它的显示尺寸等等。
可是“占位符”只带来一种信息:我就在这里了……

我试图搜索相关问题的解决办法,来改变我所遇到的这种烦心事。可总是找不到太合适的资料。
最让人恼火的事还有,就是我不知道如何来描述这种现象!

不过,最后我还是通过一定的努力找到一种让人信服的说法和解决办法。
那是在来自MSDN的示例代码中,我通过比对他们对“控件继承物”的处理策略,终于找到了一个
名为“DesktopCompatible”的,让我摸不到边的属性:把它设置成“true”就可以啦!

和我一样不太懂的朋友可能对我刚才那种模糊不全的说法很恼火。不过,请先不要着急,听我慢慢道来。

喜欢使用搜索引擎的人可能已经对“DesktopCompatible”展开大规模的搜索了。
嗯,这是很不错的。因为我下面将要说的话,也基本来自于那引些“玩意儿”。

这又在微软搞的“技术”,貌似是在VS2005的时候新加入的。同时加入的新玩意儿还有“Class Designer”
(我在这里姑且叫它的“类设计器”吧),相对于“Form Designer”(窗体设计器),等玩意儿。
当然,类似的新意儿还不少,不过我并不打算在这里开展新事物表彰大会,因此就点到为止吧。

在一篇名为“Creating and Migrating Smart Device Custom Controls by Using Visual Studio 2005”的文章
(来自于MSDN,发布于:April 2006)的文章里,我找到一些可以解释一点我的困惑的技术细节,
相信可对于想要更多了解使用“DesktopCompatible”属性的理由的您,也能起到一点解惑答疑的功效。呵呵。

下面是我参考过的文章:

DesktopCompatible(True) - Inherited Controls
http://social.msdn.microsoft.com/Forums/en-US/netfxcompact/thread/c8ea41e6-5012-4e7c-9e18-e158d8eb6620/

Creating and Migrating Smart Device Custom Controls by Using Visual Studio 2005
http://msdn.microsoft.com/en-us/library/aa446500.aspx

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
一句话总结
-----------
要解决我最前面描述的那种现象,只需要在你的工程中加入一个包含下面 6 行 内容的.xmta文件。
<?xml version="1.0" encoding="utf-16"?>
<Classes xmlns="http://schemas.microsoft.com/VisualStudio/2004/03/SmartDevices/XMTA.xsd">
  <Class Name="SmartDeviceProject1.UserControl1">
    <DesktopCompatible>true</DesktopCompatible>
  </Class>
</Classes>

让人郁闷的“DesktopCompatible”相关推荐

  1. 这年头真让人郁闷,上个网都不消停···

    太让人郁闷了,没想到竟然有人会兴师动众的用DDos攻击个人电脑,SynFlood这东西很久以前有玩过,不过被当作攻击目标确实是第一次,感觉还真是不一样.不过结果有点惨了,不是开8000端口的程序崩溃, ...

  2. 程序员一人对接四人郁闷吐槽:轮流指挥,只有我从天亮忙到天黑

    职场上,每个人扮演着不同的角色,也有着不同的职责.领导需要管理好团队,将工作分配给最合适的人来做,而员工要做的,就是发挥自己的专业技能,尽善尽美地完成工作.这样一级对一级负责的方式,最大的优点就是高效 ...

  3. 一个让人郁闷的DELPHI编译器错误:[dcc32 致命错误] Main.pas(1305): F2084 内部错误:URW1302

    DELPHI 10.4.2 / DELPHI 11 均发生此类错误,其它版本未知: 工程的结构: Datamodule 命名为: DM_SYS 放上组件  ADOConnection  .ADOQUE ...

  4. 写给初学JAVA的人

    看过请留个言,转载请注明出处,尊重作者劳动成果,谢谢! 好多初学JAVA的学生朋友都问过我这样的问题: 许 老师,我是一名新生.以前没JAVA基础,现在上课我基本能懂,但是叫我写程序做作业我觉得有点力 ...

  5. 「经典阅读」在职场,多少人输在了处关系上

    职场如战场,没有被职场蹂躏过的人,不配谈人生. 在错综复杂的职场人脉关系中,每天都有新情况.经常会遇到搞定了老板却搞不定同级,卖命工作却得不到升迁,在团队里受到不公正待遇之类让人郁闷挫败的烦心事.怎样 ...

  6. 敬自由:破壁人华为,开启PC的无界探索

    一篇名为<警报:技术停滞>的博客中提到,很多沿用至今的技术都是上一个25年的历史产物.比如电脑技术的更新换代,从Window98.xp到Win 11,从单核到双核,从640K到 8G 内存 ...

  7. 建行认可的计算机等级,郁闷的建行笔试经历 给学弟学妹参考

    原标题:郁闷的建行笔试经历 给学弟学妹参考 季即将开始,东吴银行招聘网为考生整理一篇建行笔试经历,供考生参考,除此之外,东吴银行招聘网还为考生各大银行校园招聘.社会招聘公告,笔试时间,面试通知,免费备 ...

  8. 心情像天气一样郁闷!

    昨天,国青和韩青的亚青冠亚军之战看得真TMD郁闷.国青踢得狗屎一样,没组织,没进攻,连防受也不行--让对方在禁区里面随便玩!就这帮垃圾还要作为2008国奥的班底?靠!最近的中国足球就像是一块腐烂的臭肉 ...

  9. 人生千姿百味,人人都只能活一回。有坐享其成的福气,就不会体验挑战人生的荣耀,每个人各有各的活法,各有不同的悲喜哀乐。

    人生千姿百味,人人都只能活一回.有坐享其成的福气,就不会体验挑战人生的荣耀,每个人各有各的活法,各有不同的悲喜哀乐. 如何将svn ci的log编辑器$SVN_EDITOR环境变量设定为vim 可以在 ...

最新文章

  1. 第11讲:Reqeusts + PyQuery + PyMongo 基本案例实战
  2. 架构之:微服务架构漫谈
  3. c语言提取图片yiq分量,图片数字水印C语言代码
  4. 刷recovery工具apk_红米note4X刷lineage,不喜欢miui10广告臃肿的可以试一试
  5. Springcloud 高效率本地加Redis双级缓存
  6. spring集成mybatis后怎么在控制台打印sql语句
  7. 【计算机组成与设计学习笔记】(一)
  8. SQLCODE 错误对照表
  9. Ps(Adobephoto shop)当中布尔运算的使用方法
  10. python实现键盘自动输入_人生苦短我用Python——模拟鼠标点击和键盘输入的操作...
  11. find missing conjunction, why?
  12. linux修改文档拥有人为,Linux系统修复
  13. 基于C语言的信息管理系统和小游戏
  14. HTML图片和文字一行时的对齐方式
  15. 什么是 HTTP cookie?
  16. Android:从源码剖析Hander机制
  17. 计算机网络路由器配置实验怎么做,计算机网络路由器配置实验
  18. android 虚拟键盘的显示与隐藏问题
  19. 读《小强升职记》有感 时间管理
  20. sql按照汉字遇到多音字首字母排序顺序乱掉解决办法

热门文章

  1. Appium+python自动化(十五)- Android 这些基础知识,你知多少???(超详解)...
  2. freemaker模板引擎使用详解
  3. 第一次scrum冲刺
  4. CSS 如何让 height:100%; 起作用
  5. 聚类分析1:层次聚类
  6. 生成两个表的笛卡尔积
  7. VSS源代码管理应该怎么样对bin目录及项目中用到的第三方组件进行管理?
  8. XCTF-MISC-新手区-gif
  9. Angular8 - 稳定版修改概述(Angular 8的新特性介绍)
  10. at java.net.urlclassloader.findclass_如何使用URLClassLoader加载* .class文件?