窗体设置

1. 窗体设置

  1.1 窗体大小

    在窗体的Load事件中编写 this.MaximumSize = new Size(长,宽);

  1.2 新增窗体

    新建工程, 默认为Form1. 在程序右键Add Windows Form新建一个窗体程序, 默认为Form2

    在Form1上添加一Button, Button_Click中添加下面代码  

1 private void button1_Click(object sender, EventArgs e)
2         {
3             Form2 frm = new Form2();
4             frm.Show();
5
6         }

    点击按钮就会产生Form2

       

  1.3 窗体透明度

private void button1_Click(object sender, EventArgs e)
        {
            Form2 frm = new Form2();
            frm.Opacity = 0.3;  //透明度=1为不透明, 0为完全透明
            frm.Show();
        }

    可以设置透明度逐渐增大的效果, 透明度对窗体上所有控件有效

    

  1.4 控件移动

    实现点击Form1的Button产生Form2, 点击Form1上的label控件, Label控件移动到Form2上, 再次点击则返回Form1 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Windows.Forms;
 9
10 namespace Windows
11 {
12     public partial class Form1 : Form
13     {
14         public Form1()
15         {
16             InitializeComponent();
17         }
18
19         Form2 form2;  //声明Form2
20
21         private void button1_Click(object sender, EventArgs e)
22         {
23             form2 = new Form2();  //实例化窗体
24             form2.Show();       //显示窗体
25         }
26
27         private void labelMove_Click(object sender, EventArgs e)
28         {
29             if (this.labelMove.Parent == this)      //判断准备移动的控件位于当前Form1中
30             {
31                 form2.Controls.Add(this.labelMove);   //将该控件添加到Form2中了, 在Form1上消失了
32                 this.labelMove.Text = "返回";
33             }
34             else {
35                 this.Controls.Add(this.labelMove);
36                 this.labelMove.Text = "移动";
37             }
38         }
39     }
40 }

  1.5 根据窗体自动调整控件大小

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Windows.Forms;
 9
10 namespace Windows2
11 {
12     public partial class Form1 : Form
13     {
14         public Form1()
15         {
16             InitializeComponent();
17         }
18
19         private float X;private float Y;
20
21         private void Form1_Load(object sender, EventArgs e)
22         {
23             this.Resize += new EventHandler(Form1_Resize);  //窗体调整大小事件时执行的方法
24             X = this.Width;
25             Y = this.Height;
26             setTag(this);
27         }
28
29         private void Form1_Resize(object sender, EventArgs e)
30         {
31             float newx = (this.Width) / X;
32             float newy = (this.Height) / Y;
33             setControls(newx, newy, this);
34             this.Text = this.Width.ToString() + " " + this.Height.ToString();  //窗体标题栏文本
35
36         }
37
38         private void setTag(Control cons){
39         //获取控件的 width , height , left , top , 字体大小存放在控件的 Tag属性中
40             foreach (Control con in cons.Controls) {  //遍历窗体所有控件
41                 con.Tag = con.Width + ":" + con.Height + ":" + con.Left + ":" + con.Top + ":" + con.Font.Size;
42                 if (con.Controls.Count > 0)
43                     setTag(con);  //递归调用
44             }
45         }
46
47         private void setControls(float newx, float newy, Control cons){  //根据窗体大小调整控件大小
48             foreach (Control con in cons.Controls) {
49                 string[] mytag = con.Tag.ToString().Split(new char[] { ‘:‘ });  //获取控件的Tag属性值, 并分割后存储字符数组
50                 float a;
51                 a = Convert.ToSingle(mytag[0]) * newx;
52                 con.Width = (int)a;
53                 a = Convert.ToSingle(mytag[1]) * newy;
54                 con.Height = (int)(a);
55                 a = Convert.ToSingle(mytag[2]) * newx;
56                 con.Left = (int)(a);
57                 a = Convert.ToSingle(mytag[3]) * newy;
58                 con.Top = (int)(a);
59                 Single currentSize = Convert.ToSingle(mytag[4]) * newy;
60                 con.Font = new Font(con.Font.Name, currentSize, con.Font.Style, con.Font.Unit);
61                 if (con.Controls.Count > 0)
62                 {
63                     setControls(newx, newy, con);
64                 }
65             }
66         }
67     }
68 }

  

  

  

    

    

    

窗体设置

时间: 2024-10-30 02:52:10

窗体设置的相关文章

Android 窗体设置

requestWindowFeature(Window.FEATURE_NO_TITLE);  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); Runnable的使用: Handler.postDelayed:的使用 单例的模式编程设计: Android 窗体设置

Delphi 6 保存窗体设置

DSK Desktop Setting File 保存工程文件的桌面摆布情况, 下次打开时可以恢复上次保存的桌面状态 Desktop文件.保存了IDE的布局(也可能包含浏览记号,视乎IDE的设定),为防止开发人员的IDE布局设置.文本格式,此文件不应进源代码库 以上两个说明,引用自:http://www.cnblogs.com/findumars/p/4479594.html 如果想要保存自己的窗体设置: Tools-> Environmental Options-> Autosave opt

无边框窗体设置

#region 方法:无边框拖动窗体 Point mouseOff;//鼠标移动位置变量 bool RightFlag;//标签是否为左键 private void groupMenu_MouseUp(object sender, MouseEventArgs e) { if (RightFlag) { RightFlag = false;//释放鼠标后标注为false; } } private void groupMenu_MouseMove(object sender, MouseEvent

Winform 子窗体设置刷新父窗体

方法1:所有权法 父窗体:Form1    子窗体:Form2 //Form1:窗体代码 //需要有一个公共的刷新方法 public void Refresh_Method() { //... } //在调用Form2时,要把Form2的所有者设为Form1 Form2 f2 = new Form2() ; f2.Owner = this; f2.ShowDialog() ; //Form2:窗体代码 //在需要对其调用者(父)刷新时 Form1 f1 ; f1 = (Form1)this.Ow

PyQt主窗体设置停靠窗口(QDockWidget)的叠加顺序

PyQt提供了方便的停靠窗口控件,我们可以很方便的编写一个停靠窗口,代码和效果如下: # -*- coding: utf-8 -*-from PyQt4 import QtGui, QtCore class MainWindow(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.createDockWindows() def createDockWindows(self): dock1 =

【PyQt5】(04)设置窗体标题

特别说明 为了直接展示本篇的重点,往期内容将不再写入代码中,读者可按需自行编码组合 为了更好的展示效果,代码段将以图片的形式上传,若想复制代码可移步笔者的Github 为了便于学习,每篇只解决一个小问题,如有问题,请参阅往期内容或在评论区留言 环境说明 平台:WIN10(教育版) 环境:Anaconda5.2(Python3.6.6) IDE:Pacharm2018.2.2(专业版) PyQt5:5.11.2 任务目标 设置窗体标题 为窗体设置标题 输出:一个标题为 Hello,PyQt5! 的

WPF窗体の投影效果

有时候我们需要给WPF窗体加上一个毛边(投影效果) 我们可以在窗体下加上如下代码 <Window.Effect> <DropShadowEffect BlurRadius="24" Color="#FF858484" Direction="90" ShadowDepth="3"/> </Window.Effect> 然后需要给窗体设置一个border BorderThickness=&quo

GUI——AWT框架和容器,创建简单窗体

GUI概述:GUI(Graphical User Interface)—图形化用户界面.用户和程序之间可以通过GUI能方便友好地进行交互,在Java语言中,JFC(Java Foundation Classed)是开发GUI的API集,它主要包含以下几个部分: a)   AWT(抽象窗口工具包):Java开发用户界面最初的工具包,是建立JFC的主要基础; b)   Swing组件:建立在AWT之上,新的,功能更强大的图形组件包; c)   JAVA 2D:实现高质量的二维图形; AWT框架: ①

Extjs 窗体居中,双重窗体弹出时清除父窗体的鼠标事件

这个是监控窗体缩放的事件 缩放中居中主要在 'beforeshow' 和 'destroy'两个事件里面监控 var EditTempWindow; Ext.EventManager.onWindowResize(function() { if (EditTempWindow) { EditTempWindow.center() } }); Ext.define("Define.Class.EditWindow", { id: 'RoomEditWin', xtype: 'window