- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用C#更专业的实现运行时调整控件大小和位置
上一篇 / 下一篇 ?2008-07-29 21:43:41 / 个人分类:.Net [C#]
查看( 4 ) / 评论( 0 ) / 评分( 0 / 0 )
???????Delphi、VB到现在的Visual Studio .Net可视化的控件式编程越来越简化我们的开发过程,对于控件的可视化操作必不可少。在Visual Studio .Net的IDE中开发桌面应用程序时我们可以在设计时从控件工具栏拖拽若干个控件放置到窗体上,随意移动和调整控件大小,稍加布置后我们就会得到一个非常满意的UI。若是运行时也能够移动和调整控件则会给我们带来更多的好处,譬如在.Net下运行时拖动控件可以应用于自定义窗体打印,这样就能动态的更改窗体上的控件布局和大小,打印出更加美观的报表来。本文就将利用C#演示在运行时显示一个操作边框利用它来拖动和调整控件,程序运行界面如下:ITPUB个人空间O2W/E$R!zITPUB个人空间 gNP.v)J
一、
运行时调整控件大小和位置很简单,在.Net下只需修改控件的location和size属性即可,动态调整时再捕获MouseDown、MouseMove及MouseUp事件来实时修改上述两个属性就可以实现。但是我们会发现在Visual Studio.Net的开发环境中设计窗体布局时,选择了控件后总会有一个可以调整其大小和位置的边框出现以方便用户进行操作。在VC6中MFC曾经为我们提供了CRectTracker类来完成这项工作,但是C#里我却没有发现相关类。运行时可以调整控件位置和大小在某些情况下非常有用,譬如.Net提供了窗体打印功能,若能够在运行时调整控件大小和位置我们将会动态的生成非常漂亮和规整的报表来。借鉴CRectTracker类我们发现它实际上就相当于一个父控件,然后传递给它不同类的指针进行附着。在C#下我们以另外一种思维来考虑这个问题,当在设计时的窗体上放置一个Panel控件,然后再往该Panel控件上放置一个子控件并填充之,那么在设计时调整Panel大小和位置时其子控件都会随之改变,我们就利用这个原理在运行时捕获获得焦点的子控件,然后让其成为类似于前述Panel父控件的子控件,并且在父控件周围利用.Net GDI+画上用于调整的边框和锚点,当鼠标在特定位置按下并拖动时激活MouseMove事件进行响应。实现的关键就是针对于类似Panel控件的操作,直接使用Panel控件进行上述操作也未尝不可,但是我们将会创建一个专门用于运行时动态调整控件大小和位置的自定义控件,我们把它命名为:CRectControl。
二、
启动Visual Studio .Net 2005,首先创建C#类库。要想创建一个可以包容其它控件的容器控件,那么控件基类必须从System.Windows.Forms.UserControl继承,代码如下:
publicclassCRectControl: System.Windows.Forms.UserControl
{
……
}
??? 新建类库时默认引用不包括System.Windows.Forms和System.Drawing,我们必须手动将上述程序集添加到项目引用中。System.Windows.Forms为我们提供了丰富的创建界面的功能和方法,System.Drawing提供了对GDI+基本图形功能的访问,我们还需要导入System.Drawing.Drawing2D,该命名空间提供高级的二维和矢量图形功能,代码如下:o:Ej%F2RiP ]7{0
usingSystem;
usingSystem.Drawing;
usingSystem.Windows.Forms;
usingSystem.Drawing.Drawing2D;
CRectControl创建时传递需要调整的控件实例,根据控件大小及位置手动绘制CRectControl的边框,包括8个用于调整大小的锚点都是需要手动绘制的,代码如下:
publicRectangleRect
{
???get{returnbaseRect; }
???set
???{
???????intX = Square.Width;
???????intY = Square.Height;
???????intHeight =value.Height;
???????intWidth =value.Width;
???????baseRect =newRectangle(X, Y, Width, Height);
???????SetRectangles();
???}
}
voidSetRectangles()
{
???//定义8个小正方形的范围
???//左上
??
您可能关注的文档
- 正在应用配置.doc
- 郑州工业技术学校为何如此充满神奇.doc
- 支招:连续供墨实用故障解决方法.doc
- 直接用硬盘安装系统.doc
- 值得出手 购买Windows8平板电脑的十大理由.doc
- 制作U盘WINPE系统,强大的U盘装机维护工具!(图文教程).doc
- 制作U盘Winpe系统的方法.doc
- 制作windows xp补丁安装盘的步骤.doc
- 制作三合一光盘详细过程.doc
- 制作手机直冲,USB数据线,耳机.制作方法.doc
- 小学语文:传统包装艺术在食品保鲜包装设计中的传承与创新教学研究课题报告.docx
- 醇与卢卡斯试剂的反应Lucas49课件.pptx
- 《环境友好型VOCs催化氧化技术在废气处理中的应用研究》教学研究课题报告.docx
- 消防急救技能培训.pptx
- 人工智能视角下区域教育信息化基础设施均衡建设的投资策略研究:城乡差异分析教学研究课题报告.docx
- 基于智能研修专项课题的初中语文教学创新策略教学研究课题报告.docx
- 初中英语阅读教学中多模态资源整合与阅读策略培养研究教学研究课题报告.docx
- 高中环境设计专业:校园绿化景观设计学生参与度与设计实践能力教学研究课题报告.docx
- 探索文物史料在初中历史教学中的多元化应用策略教学研究课题报告.docx
- 消防政治工作课件.pptx
最近下载
- H3C Workspace云桌面 客户端定制配置指导(办公场景)-5W104.pdf
- 小学班队活动设计方案.pptx VIP
- 国开电大 道路工程 形考任务1-4答案.pdf VIP
- 小学班队工作原理与实践教案.doc VIP
- 701-第七章-小学班队活动管理.pptx VIP
- 2025年混凝土质量控制及管理制度(二篇) .pdf VIP
- 在线网课学堂《领导学:领导力成长路线图》单元测试考核答案.pdf
- GB 44022-2024硝酸铵安全技术规范解读.pptx VIP
- 在线网课学习课堂《人工智能与生物特征识别(北理 )》单元测试考核答案.pdf VIP
- Unit 5 Is this your pen (说课稿)-2024-2025学年湘少版(三起)(2024)英语三年级上册.docx VIP
文档评论(0)