C#中窗体、MDI的使用心得】的更多相关文章

    Delphi中实现MDI子窗体 用MDI实现浏览子窗口,具有窗口管理功能,同屏观看多个网页的内容  ① 多文档窗体(MDI) MDI窗体是一种具有主子结构的窗体体系,微软的Word便是其中的一个典型例子.MDI体系中至少需要两种窗体,只能将其中之一设置为主窗体,其余窗体全部则全部为子窗体,主窗体负责子窗体的管理.切换等工作.自然,子窗体上承载的内容可各不相同.Tidy浏览器最终实现了三种不同的窗体:主窗体.浏览子窗体.源代码子窗体.  ② 设置窗体类型  我们通过窗体的FormStyle…
在VB中做 MDI窗体很简单.在C#里就没有这个轻松了,不过还是很方便的. 首先在C#里添加一个窗体,命名为MdiMain,将其IsMdiContainer设定成true,这样MDI主窗体就建立了.然后再添加新窗体,命名为MdiChild.现在运行程序,会发现只运行了MdiMain这个主窗体.呵呵因为我们没有写任何代码,第二个窗体当然不能出现了.现在来添加这个代码. 在MdiMain窗体上添加一个Menu,然后随便写个子菜单.双击子菜单,会出现它的Click事件,在这个事件内写如下代码: Mdi…
最近在做一个小项目的时候,发现在 1680x1050 分辨率显示器上写的代码,将窗体的宽度和高度 设置成了 1600×900,在高于1600×900的分辨率上缩放显示很正常, 而后转移到 分辨率低于 1600×900 的时候缩放就不正常显示了. 而后跟踪 this.width ,在低于1600×900分辨率显示器上this.width值不是1600,而是高于当前显示器的最大分辨率一点点的值,鉴于此,以后实际项目中窗体的最大宽度和高度不能设置的太大,否者缩放窗体的时候可能会出错. 经过多次测试,也…
C# winform中 窗体缩放自适应的方法(不同电脑/不同分辨率)   窗体缩放是一个困扰我多时的问题,为了解决这个问题,我从网上找了很多相关的资料,很多人说用Anchor和Dock属性,但是我试了以后,始终不能达到想要的效果. 后来,搜到了一个帖子,终于解决了这个问题,再次对该贴作者表示感谢.原帖链接为: http://www.cnblogs.com/sydeveloper/archive/2013/01/29/2881521.html 以下是笔者的实现过程: 1.  首先在窗体上放上一个P…
Delphi中窗体的事件 Form窗体可以响应各种各样的时间,在Object Inspector的Events页面中罗列了一大堆,如下图: 下面将要列出一些常用的事件. 1.OnActivate 当窗体被初始激活时,就会发生OnActivate事件,当初始创建窗体或者用户从一个窗体切换到另一个窗体时,就可能激活窗体,Application对象也有一个OnActivate事件,当用户从一个应用程序切换到另一个应用程序时,就会产生此事件. 2.OnClose和OnCloseQuery 当关闭一个应用…
1、Show()和ShowDialog()的差别,前者在执行之后,无需等待返回,多用于MDI窗体的显示(MDI窗体之间是并列的,可以随时切换,需要注意自己调整的页面的需求,是要并列,还是要等待其中一个页面的返回);后者需要等待返回,多用于新增、修改页面,显示的页面上所做的动作需要反馈到调用这个窗体的页面。 2、Show()之后的代码在窗体展示之后,立即执行,而ShowDialog()需要等待窗体返回之后才执行其后的代码。 3、MDI窗体的MDIParent属性必须设置为唯一的主窗体才能实现MDI…
close关闭窗体,对象仍然存在,调用Close函数释放资源后可能还需要再次使用. dispose,销毁对象,窗体对象被回收了,也就是不存在了,Dispose函数释放的资源不再使用. application.exit.整个程序进程结束,项目中的所有对象都会被销毁,退出整个应用程序.DevExpress 控件 注:在MDI情况下会有所不同.在这种情况下,您需要手动调用Dispose,将窗体的所有控件都标记为进行垃圾回收. Close,Dispose对于单个窗体,最终还是调用Exit退出. Clos…
本文转载:https://my.oschina.net/Tsybius2014/blog/659742 我的操作系统是Win7,使用的VS版本是VS2012,文中的代码都是C#代码. 这几天遇到一个问题,即我用一个嵌入图片的Panel作为Winform应用程序的背景,如下图所示: 这是一个Winform窗体,里面放置了一个Panel,Dock属性为Fill,BackgroundImage使用了<少年电世界>2003年第02期的封面图片,BackgroundImageLayout使用了Stret…
开博客已经好久了,但一直没有用起来,也有很多"老人"劝诫我,好记性不如烂笔头,于是一年后的我重拾博客,打算记录一些我在计算机方面遇到的一些问题和心得. 前几天重装了Win10系统,发现现在重装系统方便多了,直接从官网上下载镜像文件然后做成系统启动盘,直接一步步安装提示来,坐等重装好.Win10占用空间也就12G左右,系统简洁又大方,可在安装软件和兼容性方面着实挺头疼的. 尤其是在装SQL Server 2008的时候遇到的一些问题,记得自己以前安装过一次,也挺麻烦的,查了很多的资料,现…
在C#中,直接在子线程中对窗体上的控件操作是会出现异常,这是由于子线程和运行窗体的线程是不同的空间,因此想要在子线程来操作窗体上的控件,是不可能 简单的通过控件对象名来操作,但不是说不能进行操作,微软提供了Invoke的方法,其作用就是让子线程告诉窗体线程来完成相应的控件操作. 要实现该功能,基本思路如下: 把想对另一线程中的控件实施的操作放到一个函数中,然后使用delegate代理那个函数,并且在那个函数中加入一个判断,用 InvokeRequired 来判断调用这个函数的线程是否和控件线程处…