信息来自:http://blog.csdn.net/renyouprince/article/details/4136176

当我们在做WinForm的程序时,总是要弹出一些窗体,但弹出窗体看起来效果都不是很好,特别是弹出的窗体很多时,这时候就会影响整个软件的用户体验.所以还是要尽量的避免弹出窗体.

我们可以用这样的方法来解决此问题,将父窗体作为容器,将字窗体显示到父窗体中,而不是作为弹出窗体.

将弹出窗体显示在父窗体中,可在父窗体中加入一个Panel(或其他容器控件),然后将要弹出的窗体作为Panel的控件显示到Panel上.但此处要设置子窗体的两个属性:

1.TopLevel,获取或设置一个值,该值指示是否将窗体显示为顶级窗口。

2.FormBorderStyle,获取或设置窗体的边框样式。

将前者设为false,后者设为System.Windows.Forms.FormBorderStyle.None.

具体代码可参考如下:

pnlOPContainer.Controls.Clear();//移除所有控件

FrmAddUser frmAddUser = new FrmAddUser();
            frmAddUser.TopLevel = false;
            frmAddUser.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            pnlOPContainer.Controls.Add(frmAddUser);

frmAddUser.Show();

这样一来,就避免了弹出窗体带来不好的用户体验了.

C# WinForm中将Form显示在Panel中(C#)的更多相关文章

  1. C#winform解析marc显示在datagridview中以及marc卡片显示

    结果显示:marc显示: 卡片显示: 程序一个类: public class MARC { #region 界面上要显示的元素 public string ztm = "";//正 ...

  2. winform 自定义控件属性在属性面板中显示

    Jan.David Nothing is impossible, the word itself says 'I'm possible'!" — Audrey Hepburn winform ...

  3. winform里操作打开在panel里的form窗体,子窗体操作同级子窗体或者父窗体的方法

    最近开始了一个winform项目,原先一直都是web项目.遇到个问题,就是在框架内,左侧和中间的main都是用panel来实现的form,就是把form窗体打开到panel里,实现左侧是导航,中间是操 ...

  4. 解决Ext.form.DateField在浏览器中显示可能有问题

    解决Ext.form.DateField在浏览器中显示可能有问题,界面将会拉的很长很长.如下图:  办法: 1:设置css的长度 .x-date-menu { padding-top:2px;padd ...

  5. Delphi Form显示在第二个显示器中的方法

    Delphi 中窗体Form显示在第二个显示器中的方法: 假定要显示在扩展的第二个显示器的Form的名称为frmFloat,则除了要设置该form的top.left.width.height为Scre ...

  6. Umbraco back office 中form显示不出来的问题

    问题纠结了好久,没找到什么原因,具体就是在back office中,form显示不出来.如下: 按下F12,在chrome 的developer tools中发现如下错误 找了半天不知道原因,后来看到 ...

  7. 22.Extjs Panel中显示多行工具栏(tbar)

    转自:http://blog.sina.com.cn/s/blog_454fbf740100t0xj.html 在应用程序的制作中,我们经常性的会用到工具栏,在Extjs中Panel中提供了tbar和 ...

  8. 【extjs】 Extjs中的Ext.grid.Panel隐藏列会显示在表头中解决方法

    在Extjs中的GridPanel会有这样的情况,隐藏列会显示在menuDisabled中,但是这个一般没有什么用处,只是用于后台取值的作用,感兴趣的朋友可以了解下啊,希望本文对你有所帮助   在Ex ...

  9. winform里面网页显示指定内容

    今天有个同事问了一下我,怎么在winform里面打开网页啊?我们都是基于C/S的开发,很少接触winform,所以我当时就懵了,实在不知道怎么回答,所以索性说不知道.但是我又想了想,这个应该是个很简单 ...

随机推荐

  1. Entity Framework Code First (四)Fluent API - 配置属性/类型

    上篇博文说过当我们定义的类不能遵循约定(Conventions)的时候,Code First 提供了两种方式来配置你的类:DataAnnotations 和 Fluent API, 本文将关注 Flu ...

  2. wordpress 缩略图功能函数 the_post_thumbnail

    很多 WordPress 主题,特别是那些杂志型的主题,会给每篇日志加上一张缩略图,这种展现方式一般用在首页,可能单独出现,或者和日志摘要一起.但是目前位置没有一个标准的方法去实现日志缩略图,很多主题 ...

  3. Handler的postDelayed方法

    这是一种可以创建多线程消息的函数 使用方法:1,首先创建一个Handler对象 Handler handler=new Handler(); 2,然后创建一个Runnable对象 Runnable r ...

  4. ftp,http,https有啥区别?

    [ftp与http的区别?] HTTP(Hyper Text Transmission Protocol)是超文本传输协议,FTP(FileTransferProtocol)是文件传输协议! HTTP ...

  5. 使用oracle utl_http包需要注意的事项

    总结下几次使用utl_http包遇到的几个问题 关于utl_http包功能还是很强大的 可以通过他来捕捉网站页面的内容 或者调用一个url的接口完成某项功能 Eg: declare   req  UT ...

  6. 翻滚吧,Spark (错误记录)

    1) 本地运行报错: Exception in thread "main" org.apache.spark.SparkException: A master URL must b ...

  7. Hash_集合

    #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> ...

  8. Linux内核版本类型

    对于Linux内核发布的版本类型有如下,也是自己的理解: [mainline]:主线版本,由Linux Torvalds维护和发布. [stable/EOL]:稳定版本,每个由主线发布的版本都叫做稳定 ...

  9. 如何解决Response.Redirect方法传递汉字丢失或乱码问题?

    为了确保传递的汉字被正确地接收,可以在传值之前使用Server对象的UrlEncode方法对所传递的汉字进行URL编码.代码如下: String name = Server.UrlEncode(&qu ...

  10. django-redis和redis-py

    项目之前使用memcache做缓存,现在转到redis,改写几个语句的事情,然后就这种我把django-redis和py-redis搞混了,记录一下. django默认使用memcache做缓存,这里 ...