vs 2019 c# 窗体小笔记
若读须知
本文为楼主自学时寻找的知识 基本都是CSDN上面的 虽有抄袭嫌疑但是好歹是楼主辛辛苦苦总结的 而且楼主还是个刚毕业的大学生 大家见谅
其实都是怕忘记了而写的 并不是写给你们看的 0_0
c# 窗体工程![在这里插入图片描述](https://img-blog.csdnimg.cn/20191121141134535.png)
本图为别人写的 工程中每一个文件的意思大概就是这样
我自己写的时候 my 是我的工程名 命名区间 namespace 就是my 下面是主函数 主函数规定了 该工程一进来就要初始化打开一个窗体 我的窗体已改名为windows1
窗体左上角显示为它的文本 这里修改的才是它的名字
接下来做个按键界面跳转吧
-
右键工程 --> 添加 windows窗体 --> 继续改名为windows2
-
在新的窗体上添加一个 按键 然后随便弄几个文本框
打开你的窗体界面()xxx.cs[设计])–>打开工具箱 把你需要的组件拖上去 -
打开你的第一个窗体(windows1) 加上一个按键 给按键添加 按键点击事件 --> 双击这个按键就行
在windows1.cs(我的第一个窗体与他的文件)里面会出现这样一个函数 加上以下代码 windows2 是我刚刚创建的窗体
当然也可以自己手动添加控件 打开 这个文件 点击左边的 + 号 展开 代码
-
运行程序 点击按钮 就能 由windows1 跳到 windows2了
-
给自己的工程添加 别人的工程中的窗体
将别人的这三个文件复制到自己工程的文件夹下面
在工程中 点中 显示所有文件 -->右键别人的文件名–>包括在项目中 OK
实在不行 关掉软件 重新打开工程
在windows2 再创建一个按键 打开别人的窗体
重复上面的步骤 该怎么写就怎么写
报错的原因
这是我的
这是 别人的 名字不一样
把这个名字改成和我的一样就行了在这里插入代码片
使得窗体里面的组件随着窗体的大小改变而跟着改变 不会变的乱糟糟的
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace my
{
public partial class windows2 : Form
{
public windows2()
{
InitializeComponent();
int count = this.Controls.Count * 2 + 2;
float[] factor = new float[count];
int i = 0;
factor[i++] = Size.Width;
factor[i++] = Size.Height;
foreach (Control ctrl in this.Controls)//可以遍历 窗口中的所有组件
{
factor[i++] = ctrl.Location.X / (float)Size.Width;
factor[i++] = ctrl.Location.Y / (float)Size.Height;
ctrl.Tag = ctrl.Size;//!!!把位置信息存入Tag
}
Tag = factor;
}
private void button1_Click(object sender, EventArgs e)
{
Form1 w3 = new Form1();
w3.Show();
}
//重写Form1_Resize函数 在窗体改变时 直接调用该函数
private void FrmQueryBalance_Resize(object sender, EventArgs e)
{
//控件随窗体全屏显示
float[] scale = (float[])Tag;// 从Tag中提取窗体没有改变时的各组件的信息
int i = 2;
foreach (Control ctrl in this.Controls) //自动遍历各组件 目测顺序为你创建组件的顺序
{
ctrl.Left = (int)(Size.Width * scale[i++]);
ctrl.Top = (int)(Size.Height * scale[i++]);
ctrl.Width = (int)(Size.Width / (float)scale[0] * ((Size)ctrl.Tag).Width);//!!!
ctrl.Height = (int)(Size.Height / (float)scale[1] * ((Size)ctrl.Tag).Height);//!!!
//每次使用的都是最初始的控件大小,保证准确无误。
}
}
}
}
别忘了在窗体那里 属性 -> resize-> FrmQueryBalance_Resize