`
hanbaobao
  • 浏览: 21418 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

C# WinForm技巧“将Form嵌入到Panel”

阅读更多

 

原文:C# WinForm技巧"将Form嵌入到Panel"

虽然有 TabControl控件, 但是为了减少主窗体的代码量, 可以将部分分页的功能模块放置于一个 Form 中, 当调用时, 直接把这个 Form嵌入到一个 Panel中即可.

示例如下:

要嵌入的 Form:

 

    public partial class FormEmbed : Form
    {
        
public FormEmbed()
        {
            InitializeComponent();
        }
        
private void button1_Click(object sender, EventArgs e)
        {
            
this.Hide(); // 不能调用 Close 方法, 因为 Close 后Form被释放,就不能再次Show
        }
    }

 

主窗体中放置一个容器Panel(或者 TabControl的 TabPage):

 private FormEmbed frmEmbed = new FormEmbed(); // 全局变量
        public Form1()
        {
            InitializeComponent();
        }
         
// 显示
        private void button1_Click(object sender, EventArgs e)
        {
            
if (frmEmbed != null)
            {
                frmEmbed.FormBorderStyle 
= FormBorderStyle.None; // 无边框
                frmEmbed.TopLevel = false// 不是最顶层窗体
                panel1.Controls.Add(frmEmbed);  // 添加到 Panel中
                frmEmbed.Show();     // 显示
            }
        }
       
// 隐藏     
        private void button2_Click(object sender, EventArgs e)
        {
            
if (frmEmbed != null)
            {
                frmEmbed.Hide();   
           }
        }

 

分享到:
评论
1 楼 lijingbo9512 2011-09-13  
这个有点小问题,加入的窗体 在tabcontrol里边不能以最大化显示,如何处理?

相关推荐

    C# WinForm 在Panel中添加Form 教程+源码

    提供的源码文件"**C# WinForm在Panel中添加Form.txt**"和"**panel 放窗体+清空.txt**"应该包含了实现这一功能的具体代码,读者可以结合本文档的说明进行学习和实践。 总的来说,这种技术在开发复杂的桌面应用时非常...

    C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子.pdf

    除了直接显示在MDI父窗体上,还可以将子窗体嵌入到特定的Panel控件中。首先需要在父窗体中添加一个Panel控件,并将其名称设置为pnl1。然后将子窗体的`Parent`属性设置为该Panel。 ```csharp mySon.Parent = pnl1; /...

    C# WinForm窗体及其控件的自适应

    1.把自适应的类整体复制到你的工程命名空间里,这样做,每个窗体均可使用。 2.声明自适应类实例。 3.为窗体添加SizeChanged事件,并在其方法Form1_SizeChanged中,首次记录窗体和其控件初始位置和大小,之后调用类的...

    winform把exe程序嵌套在窗体中

    在C# WinForm开发中,有时我们可能需要将一个外部的.exe程序集成到我们的应用程序中,使其成为窗体的一部分,这种技术通常被称为嵌入或托管外部应用程序。这在某些场景下非常有用,例如,当我们想在自己的应用内运行...

    UE4程序嵌入WINFORM

    4. **嵌入UE4窗口**:在WinForm的代码中,使用`SetParent`函数将UE4的窗口句柄设置为你WinForm的某个控件(如PictureBox或Panel)的子窗口,这样UE4的渲染视口就会显示在这个控件上。 5. **通信与交互**:为了实现...

    U3D.exe嵌入winform的脚本

    当我们需要将Unity3D的场景或游戏嵌入到传统的Windows桌面应用中时,就涉及到“U3D.exe嵌入WinForm”的技术。这项技术可以让我们在WinForm应用中展示Unity内容,并实现两者之间的数据交互,提升用户体验和应用功能。...

    winform 实现资源管理器

    - 使用Visual Studio中的WinForm设计器,添加两个Panel控件,一个用于左侧的树视图(TreeView),另一个用于右侧的文件列表视图(ListView)。这两个控件可以通过调整大小和位置来适应界面布局。 - 在TreeView中,...

    Winform去掉最大化最小化关闭按钮

    本文将详细讲解如何在Winform中实现这一功能。 首先,我们需要了解Winform窗口的基本结构。一个Winform窗口是由一个名为`Form`的类创建的,该类继承自`System.Windows.Forms.Control`。在默认情况下,`Form`类会...

    C# Winform 侧边栏,切换不同页面

    总结来说,实现"C# Winform 侧边栏,切换不同页面"需要掌握Windows Forms的基本控件用法,尤其是ToolStrip、MenuStrip和FlowLayoutPanel,以及如何使用Form类创建和管理子窗体。同时,理解MDI应用程序的概念也是至关...

    WinFrom调用EXE,实现窗口内外显示2种方法

    - **子窗口嵌入**:如果你希望外部EXE窗口嵌入到WinForm中,可以利用Windows API的`CreateProcess`和`SetParent`函数,创建并设置子窗口。但这种方法较为复杂,需要处理窗口消息和同步问题。 - **通信机制**:...

    winform置顶问题解决.zip

    1. **设置正确的父级控件**:确保WindowsFormsHost控件被正确地添加到WPF的Visual Tree中,避免直接添加到Window或Grid等控件上,而应将其添加到能正确处理Z-Order的容器控件(如Canvas或StackPanel)中。...

    childFrmText.rar

    在C# WinForm开发中,创建具有嵌套子窗体的应用程序是一项常见的任务,这有助于构建用户界面的层次结构,...通过实现这样的项目,开发者可以提升对C# WinForm的掌握程度,同时也能锻炼到UI设计和用户体验方面的技巧。

    在winform下实现左右布局多窗口界面的方法

    这里,我们将子窗体的`Parent`属性设置为`splitContainer1.Panel2`,而不是设置`MdiParent`,因为子窗体不再作为MDI Child,而是直接作为SplitContainer的子控件。 2. 实现动态调整左右占比功能: 用户可以通过...

    俄罗斯方块C#项目

    总之,【俄罗斯方块C#项目】涵盖了C#编程语言的多个方面,从基本语法到高级特性,为学习者提供了一个全面的实践平台,同时也展示了C#在游戏开发中的强大能力。通过分析和理解这个项目,不仅可以掌握C#编程,还能深入...

    C# for CSDN 乱七八糟的看不懂

    -128 到 127 -32,768 到 32,767 -2,147,483,648 2,147,483,647 -9,223,372,036,854,775,808 到 第1页 C#(WINFORM)学习 long val2 = 34L; 到 9,223,372,036,854,775,807 byte ushort 8 位无符号整型 16 位无符号...

    .net&VS;&SqlServer;编程小技巧经验总结

    - **嵌入窗体**:可以通过将新窗体的`Parent`属性设置为现有的容器控件来实现嵌入式显示。 ```csharp Form1 newForm = new Form1(); newForm.TopLevel = false; newForm.Parent = panel1; newForm.Dock = ...

Global site tag (gtag.js) - Google Analytics