winform窗体嵌入另一个窗体(如何将窗体放在另一个窗体里 (WINFORM C#))

本文目录
- 如何将窗体放在另一个窗体里 (WINFORM C#)
- WinForm程序如何将子窗体嵌入到父窗体的Panel里
- winform怎么设置窗体透明,显示另一个窗体里面的图片
- winform 一个窗体触发另一个窗体的LOAD
- winform中的窗体嵌套问题,A窗体嵌套在B窗体上,B窗体改变大小后,A窗体大小和控件跟着变化
- 在WinForm中,怎么实现在一个窗体中向另一个窗体动态添加控件
- winform中如何在一个窗口中调用另一个窗口的控件
- Winform编程中,子窗口在自己的父容器中,打开另外一个子窗口
- C#中在一个窗体中通过按钮打开另一个窗体
如何将窗体放在另一个窗体里 (WINFORM C#)
Option Explicit
’变量声明
’MoveScreen,布尔型变量,标示窗体是否处于被移动状态
Dim MoveScreen As Boolean
’鼠标位置
Dim MousX As Integer
Dim MousY As Integer
’窗体位置
Dim CurrX As Integer
Dim CurrY As Integer
’“退出”按钮
Private Sub CmdExit_Click()
End
End Sub
’当鼠标在窗体上按下时
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
’---------------------------------------------
’参数说明:
’---------------------------------------------
’button 返回一个整数,用来标识按下或释放的是哪一
’个按钮。button 参数的值为相应于左按钮(1)右按钮
’(2),以及中间按钮(4)。
’---------------------------------------------
’shift 返回一个整数,在鼠标按钮被按下或者被释放
’的同时,SHIFT,CTRL,和 ALT 键的状态,返回的shift
’参数值分别为1,2,和 4。指示这些键的状态。
’---------------------------------------------
’x, y 返回一个指定鼠标指针当前位置的数。
’---------------------------------------------
’如果是鼠标左键按下
If Button = 1 Then
’标示为移动状态
MoveScreen = True
’得到鼠标在窗体上的位置(相对与窗体内部坐标)
MousX = X
MousY = Y
End If
End Sub
’当鼠标在窗体上移过时
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
’如果处于鼠标左键按下的状态,即MoveScreen = True时
If MoveScreen Then
’计算新的窗体坐标值
’仔细想一下,看看是不是这样
CurrX = Form1.Left - MousX + X
CurrY = Form1.Top - MousY + Y
’移动窗体到新的位置
Form1.Move CurrX, CurrY
End If
’把新的窗体坐标显示出来,是相对于屏幕的坐标
Label3.Caption = CurrX
Label4.Caption = CurrY
’把鼠标点击的位置显示出来,是相对与窗体的坐标
Label7.Caption = MousX
Label8.Caption = MousY
End Sub
’如果鼠标松开,则停止拖动
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
MoveScreen = False
End Sub
这是移动窗体的,只要把form都改成picture,再加上
form1.move picture1.left,pictuer1.top
我也网上找的,哈哈
WinForm程序如何将子窗体嵌入到父窗体的Panel里
主要通过SetParent实现:
public static extern int SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
MDIParent1 form = new MDIParent1();
SetParent(form.Handle, this.Panel1.Handle);
form.Location = new Point(0, 0);
form.Size = this.Size;
form.Show();
参考下:
***隐藏网址***
winform怎么设置窗体透明,显示另一个窗体里面的图片
窗体透明:
最简单的方法是:
1、把窗体样式设置成none,
2、把窗体背景色设置成某一中颜色比如红色
3、把窗体的transparentKey设置成和上一颜色一致比如红色
winform 一个窗体触发另一个窗体的LOAD
教你一个实现方法,绝对有效。我这有两个窗体Form1和Form2Form1中有两个控件1个Label控件和1个按钮。Form2中也有两个控件1个textBox控件和1个确定按钮。我要模拟你说的,点击Form1中的button1打开Form2,在Form2的文本框中输入数据再点“确定”按钮后,Form2关闭,Form1刷新在Label控件中显示在Form2文本框中输入的值。Form1代码:----------------------------------------------------------------------------------public partial class Form1 : Form
{
public static Form1 frm1 = null; //关键,创建一个自身的静态对象
public Form1()
{
InitializeComponent();
frm1 = this; //frm1指向自身
} private void button1_Click(object sender, EventArgs e) //按钮单击事件代码
{
Form2 frm2 = new Form2();
frm2.ShowDialog();
} private void Form1_Load(object sender, EventArgs e) //窗体载入事件代码
{
this.label1.Text = Program.abc; //abc是在Program类中定义公共变量
}
public void Frm1_RePaint(EventArgs e) //窗体重绘 {
this.Controls.Clear();
this.InitializeComponent();
this.OnLoad(e); //重新载入
}
}----------------------------------------------------------------------------------Form2中的“确定”按钮单击事件代码:private void button1_Click(object sender, EventArgs e)
{
Program.abc = this.textBox1.Text;
Form1.frm1.Frm1_RePaint(e); //重绘窗体
this.Dispose();
}--------------------------------------------------------------------------------------------以上只是一个模拟,但我在很多大的软件实例中也用过,不过我种方法并不是非常安全的。
winform中的窗体嵌套问题,A窗体嵌套在B窗体上,B窗体改变大小后,A窗体大小和控件跟着变化
1)新建一个窗体Form1(这个是你的窗体B),并在窗体上布置一个Panel(名为panel1);
2)新建一个窗体Form2(这个是你的窗体A)
3)在Form1的后台代码中
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 让panel1停靠在窗体顶部,这样panel1会随着窗体大小变化而变化
panel1.Dock = DockStyle.Top;
// 实例化Form2
Form2 f = new Form2();
f.TopLevel = false;
// 将Form2加入到panel1中
panel1.Controls.Add(f);
// 禁止Form2最大化、最小化和关闭
f.ControlBox = false;
// 让Form2占满panel1
f.Dock = DockStyle.Fill;
// 显示Form2
f.Show();
}
}
在WinForm中,怎么实现在一个窗体中向另一个窗体动态添加控件
动态添加控件,自己要操作的就是new一个控件出来,然后this.controls.add(控件)方法添加进去,利用Location属性确定其起始位置,用size属性确定其大小,附代码双击鼠标添加testbox
private void from1_DoubleClick(object sender, EventArgs e)
{
TextBox mytestbox = new TextBox();
mytestbox.Location = PointToClient(MousePosition);
mytestbox.Size = new Size(100,50); //自己调整
this.Controls.Add(mytestbox); //添加,添到哪里自己调整
}
winform中如何在一个窗口中调用另一个窗口的控件
在form2中添加一个全局的public变量,form1在显示form2的时候先把textbox的值赋值给这个变量即可。
Winform编程中,子窗口在自己的父容器中,打开另外一个子窗口
panel1 控件 、 父窗体 Form1 子窗体 Form2
this.panel.controls.clear();在加载控件时 先清空容器。
Form2 Frm=new Form2();
Frm.ToLevel=false; 这个很重要 。
this.panel1.Controls.add(Frm)
Frm.show();
基本就是 这样实现的 , 可能 代码 不规范 。 你自己试着写一下
C#中在一个窗体中通过按钮打开另一个窗体
1、在winform项目点击右键-添加-新建项-Windows Forms-Windows 窗体,新建一个要弹出的窗体Form2。
2、在Form1中拖入一个button,修改Text属性为弹出窗体。
3、双击按钮,进入代码编写界面。
4、编写代码“Form2 form2=new Form2;form2.ShowDialog();”。
5、点击启动按钮,或者按F5键,运行程序。
6、点击弹出窗体按钮后,弹出新窗体。

更多文章:
xor四位数怎么运算(单片机怎样用C语言实现4个数字间的异或)
2026年10月10日 17:50
perl数组中最多的元素(用perl实现,得到一个数组中重复次数最多的元素)
2026年10月10日 17:00
oracle11g端口映射客户端频繁掉线(oracle本地进行连接的时候报错ORA-12560: TNS: 协议适配器错误)
2026年10月10日 16:10
vb程序设计里面的x是啥(VB程序设计中的变量是如何定义的,请大家帮帮忙告诉我)
2026年10月10日 10:40
java定时器每一分钟执行一次(java定时执行问题: 我想让一个Java代码在每小时的第25分钟执行一次的,这个怎么实现)
2026年10月10日 08:50
abap开发工作经历(目前,从事的是ABAP开发的不知道做这个有没有什么前途啊好的话,我会加分的~)
2026年10月10日 01:10





