更换窗体的图标
窗体样式
Icon: 更换图标
外观
FormBorderStyle
属性 | 值 | 意义 |
---|---|---|
FormBorderStyle.None | 0 | 无边框 |
FormBorderStyle.FixedSingle | 1 | 固定的单行边框 |
FormBorderStyle.Fixed3D | 2 | 固定的三维样式边框 |
FormBorderStyle.FixedDialog | 3 | 固定的对话框样式的粗边框 |
FormBorderStyle.Sizable | 4 | 可调整大小的边框 |
FormBorderStyle.FixedToolWindow | 5 | 不可调整大小的工具窗口边框 |
FormBorderStyle.SizableToolWindow | 6 | 可调整大小的工具窗口边框 |
布局
StartPosition
属性 | 意义 |
---|---|
CenterParent | 窗体在其父窗体中居中 |
CenterScreen | 窗体在当前显示窗口中居中,其尺寸在窗体大小中指定。 |
Manual | 窗体的位置由 Location 属性确定。 |
WindowsDefaultBounds | 窗体定位在 Windows 默认位置,其边界也由 Windows 默认决定。 |
WindowsDefaultLocation | 窗体定位在 Windows 默认位置,其尺寸在窗体大小中指定。 |
Size:设置窗体的大小
外观
BackgroundImage:设置窗体的背景图片
视图 >工具箱
之后拖动选择的控键到窗体中即可
外观
Test:设置控键文本内容
代码如下:
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//设置启动窗体From1
Application.Run(new Form1());
}
}
}
Form1.cs
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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
//此处为button的点击,并调用From2的显示的功能
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();//实例话Form2
frm.Show();
}
private void button2_Click(object sender, EventArgs e)
{
this.Hide();//隐藏原有窗体1
}
}
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("点击了窗体");
}
private void Form1_Load(object sender, EventArgs e)
{
//if语句判断是否点击了“是”按钮
if (MessageBox.Show("是否查看窗体!","",MessageBoxButtons.YesNo,MessageBoxIcon.Information)==DialogResult.Yes)
{
}
}
public Form1()
{
InitializeComponent();
//对FormClosing事件进行注册
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
}
.............
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
MessageBox.Show("过程2");
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("是否关闭窗体?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
MessageBox.Show("过程1");
}
else
{
e.Cancel = true;//撤销事件关闭
}
}
//设置MDI窗体
// 1、窗口样式-》IsMdiContainer:True
public Form1()
{
InitializeComponent();
// 2、设置子窗体
Form2 frm2 = new Form2();
frm2.Show();
frm2.MdiParent = this;
Form3 frm3 = new Form3();
frm3.Show();
frm3.MdiParent = this;
Form4 frm4 = new Form4();
frm4.Show();
frm4.MdiParent = this;
}
.....
控件选择:MenuStrip
//排列MDI窗体1
private void 加载子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show();
frm2.MdiParent = this;
Form3 frm3 = new Form3();
frm3.Show();
frm3.MdiParent = this;
Form4 frm4 = new Form4();
frm4.Show();
frm4.MdiParent = this;
}
private void 水平平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.TileHorizontal);//使用MdiLayout枚举实现窗体的水平平铺
}
private void 垂直平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.TileVertical); //使用MdiLayout枚举实现窗体的垂直平铺
}
private void 层叠排列ToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.Cascade); //使用MdiLayout枚举实现窗体的层叠排列
}
继承的窗体可以更改自身的文本等相关值设置
且窗体上添加TextBox控件、Button控件和Label控件。在button控件的click事件添加代码,实现Lable控件中输入的内容。
Form1.cs
private void button1_Click(object sender, EventArgs e)
{
//1.创建继承窗体
string str = textBox1.Text.ToString();
label1.Text = str;
}
Form2控件继承操作如下:
Form2.cs
public partial class Form2 : WindowsFormsApplication1.Form1
{
........
}
Program.cs
...........
//设置启动窗体From1
Application.Run(new Form2());
控件分类 | 作用 |
---|---|
文本类控件 | 可以在控件上显示文本 |
选择类控件 | 主要为用户提供选择的项目 |
分组控件 | 可以将窗体中的其他控件进行分组处理 |
菜单控件 | 为系统制作功能菜单,将应用程序命令分组,使它们更容易访问 |
工具栏控件 | 提供了主菜单中常用的相关工具 |
状态栏控件 | 用于显示窗体上的对象的相关信息,或者可以显示应用程序的信息 |
控件名称 | 开头缩写 |
---|---|
TextBox | txt |
Button | btn |
ComboBox | cbox |
Label | lab |
DataGridView | dgv |
Panel | pl |
TabControl | tcl |
ErrorProvider | epro |
ImageList | ilist |
ListBox | lb |
Timer | tmr |
CheckBox | chb |
LinkLabel | rlbl |
RichTextBox | rtbox |
CheckedListBox | clbox |
RadioButton | rbtn |
NumericUpDown | nudown |
HelpProvider | hpro |
ListView | lv |
TreeView | tv |
PictrueBox | pbox |
Notifylcon | nicon |
DateTimePicker | dtpicker |
MonthCalendar | mcalen |
ToolTip | ttip |
label1.Text = "用一生下载你";
label1.Visible = true;
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("单击了按钮,引发了Click事件");
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("引发了接受按钮");
}
private void Form1_Load(object sender, EventArgs e)
{
this.AcceptButton = button1;
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("单击了取消按钮");
}
private void Form1_Load(object sender, EventArgs e)
{
this.CancelButton = button1; //将 Button2按钮设置为窗体的“取消”按钮
}
private void Form1_Load(object sender, EventArgs e)
{
//this.CancelButton = button1; //将 Button2按钮设置为窗体的“取消”按钮
textBox1.ReadOnly = true; //将文本框设置为只读
textBox1.Text = "用-生下载你"; //设置其Text属性
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.PasswordChar = '@';//设置文本框的PasswordChar属性为字符@
textBox2.UseSystemPasswordChar = true;//设置文本框的UseSystemPasswordChar属性为true
}
private void Form1_Load(object sender, EventArgs e)
{
//this.CancelButton = button1; //将 Button2按钮设置为窗体的“取消”按钮
textBox1.Multiline = true; //设置文本框的Mutiline属性使其多行显示
//设置文本框的Text属性
textBox1.Text ="昨夜星辰昨夜风,画楼西畔桂堂东。身无彩凤双飞翼,心有灵犀一点通。";
textBox1.Height = 100; //设置文本框的高
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Multiline = true; //设置文本框的Multiline 属性使其多行显示
textBox1.Text = "昨夜星辰昨夜风,画楼西畔桂堂东。身无彩凤双飞翼,心有灵犀一点通。";
textBox1.Height = 100;//设置文本框的高
textBox1.SelectionStart = 5; //从文本框中索引为5的位置开始选择
textBox1.SelectionLength = 5; //选择长度是5个字符
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
label1.Text = textBox1.Text; //Label控件显示的文字随文本框中的数据而改变
}
属性值 | 说明 |
---|---|
Both | 只有当文本超过控件的宽度或长度时,才显示水平滚动条或垂直滚动条,或两个滚动条都显示 |
None | 从不显示任何类型的滚动条 |
Horizontal | 只有当文本超过控件的宽度时,才显示水平滚动条。必须将WordWrap属性设置为false,才会出现这种情况 |
Vertical | 只有当文本超过控件的高度时,才显示垂直滚动条 |
ForcedHorizontal | 当WordWrap属性设置为false 时,显示水平滚动条。在文本未超过控件的宽度时,该滚动条显示为浅灰色 |
ForcedVertical | 始终显示垂直滚动条。在文本未超过控件的长度时,该滚动条显示为浅灰色 |
ForcedBoth | 始终显示垂直滚动条。当WordWrap属性设置为false 时,显示水平滚动条。在文本未超过控件的宽度或长度时,两个滚动条均显示为灰色 |
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.Multiline = true;//将Multiline属性设为true实现多行显示
//设置ScrollBars属性实现只显示垂直滚动条
richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;
}
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.Multiline = true; //将Mutiline属性设为true实现多行显示
richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;//设置ScrollBars属性实现只显示垂直滚动条
//设置SelectionFont属性实现控件中的文本为楷体,大小为12,字样是粗体
richTextBox1.SelectionFont = new Font("楷体", 12, FontStyle.Bold);
//设置SelectionColor实现控件中的文本颜色为蓝色
richTextBox1.SelectionColor = System.Drawing.Color.Blue;
}
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.Multiline = true; //将Mutiline属性设为true实现多行显示
richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;//设置ScrollBars属性实现只显示垂直滚动条
//设置控件的Text属性
richTextBox1.Text = "欢迎登录http://www.cccxy.com编程体验网";
}
private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e) {
//在控件的LinkClicked事件中编写如下代码实现内容中的网址带下划线
System.Diagnostics.Process.Start(e.LinkText);
}
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.Multiline = true;//将Mutiline属性设为true实现多行显示
richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical; //设置ScrolBars属性实现只显示垂直滚动条
//控件的SelectionBullet 属性设为true,使控件中的内容以项目符号列表的格式排列
richTextBox1.SelectionBullet = true;
}
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.Multiline = true; //将Mutiline属性设为true实现多行显示
//设置ScrollBars属性实现只显示垂直滚动条
richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;
//设置SelectionIndent属性的值为8,使控件中数据的左边缘与控件的左边缘之间的距离为8像素
richTextBox1.SelectionIndent = 8;
//设置SelectionRightIndent属性为12,使控件中文本的右边缘与控件右边缘的距离为12像素
richTextBox1.SelectionRightIndent = 12;
}
private void Form1_Load(object sender, EventArgs e)
{
//设置DropDownStyle属性,使控件呈现下拉列表的样式
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox1.Items.Add("用一生下载你"); //向控件中添加数据
comboBox1.Items.Add("芸烨湘枫");//向控件中添加数据
comboBox1.Items.Add("一生所爱");//向控件中添加数据
}
private void Form1_Load(object sender, EventArgs e)
{
//设置DropDownStyle属性,使控件呈现下拉列表的样式
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox1.Items.Add("用一生下载你"); //向控件中添加数据
comboBox1.Items.Add("芸烨湘枫");//向控件中添加数据
comboBox1.Items.Add("一生所爱");//向控件中添加数据
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//在控件的SelectedValueChanged事件中,使Label控件的Text属性等于控件的选择项
label1.Text = comboBox1.Text;
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
//使用if语句判断控件是否被选中
if (checkBox1.CheckState == CheckState.Checked)
{
MessageBox.Show("CheckBox控件被选中"); // 如果 被选中弹出相应提示
}
else
{
//否则
//提示该控件的选择被取消
MessageBox.Show("CheckBox控件选择被取消");
}
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
// 在CheckStateChanged事件中编写代码,实现当控件的选择状态发生改变时,弹出提示框
MessageBox.Show("控件的选择状态发生改变");
}
private void Form1_Load(object sender, EventArgs e)
{
//设置两个单选按钮的Checked属性为false
radioButton1.Checked = false;
radioButton2.Checked = false;
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
//控件的Click事件中通过if语句判断控件的Checked属性的返回值是否为true
if (radioButton1.Checked == true)
MessageBox.Show("RadioButton1控件被选中");
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
//控件的Click事件中通过if语句判断控件的Checked属性的返回值是否为true
if (radioButton2.Checked == true)
{
MessageBox.Show("RadioButton2控件被选中");
}
}
private void Form1_Load(object sender, EventArgs e)
{
//设置两个单选按钮的Checked属性为false
radioButton1.Checked = false;
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
//在控件的CheckedChanged事件中编写代码,实现当控件的选择状态改变时弹出提示
MessageBox.Show("RadioButton1控件的选中状态被更改");
}
private void button1_Click(object sender, EventArgs e)
{
radioButton1.Checked = true; //选中单选按钮
}
private void button2_Click(object sender, EventArgs e)
{
radioButton1.Checked = false; //取消 单选按钮的选中状态
}
private void Form1_Load(object sender, EventArgs e)
{
//设置两个单选按钮的Checked属性为false
radioButton1.Checked = false;
numericUpDown1.Maximum = 20; //设置控件的最大值为20
numericUpDown1.Minimum = 1; //设置控件的最小值为1
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
//实现当控件的值改变时,显示当前的值
label1.Text = "当前控件中显示的数值: " + numericUpDown1.Value;
}
private void Form1_Load(object sender, EventArgs e)
{
//设置两个单选按钮的Checked属性为false
radioButton1.Checked = false;
numericUpDown1.Maximum = 20;
//设置控件的最大值为20
numericUpDown1.Minimum = 1;
//设置控件的最小值为1
//设置控件的DecimalPlaces属性,使控件中的数值的小数点后显示两位数
numericUpDown1.DecimalPlaces = 2;
}
private void button1_Click(object sender, EventArgs e)
{
//radioButton1.Checked = true; //选中单选按钮
if (textBox1.Text == "")
{
//使用if语句判断文本框中是否输入数据
MessageBox.Show("请输入要添加的数据");//弹出提示
}
else//否则
{
listBox1.Items.Add(textBox1.Text);//使用Add方法向控件中添加数据
textBox1.Text = "";//清空文本框
}
}
private void button2_Click(object sender, EventArgs e)
{
//radioButton1.Checked = false; //取消 单选按钮的选中状态
if (listBox1.SelectedItems.Count == 0)
//判断是否选择项目
{
MessageBox.Show("请选择要删除的项目");
//如果没有选择项目,弹出提示
}
else
//否则
{
listBox1.Items.Remove(listBox1.SelectedItem);
//使用Remove方法移除选中项
}
}
private void Form1_Load(object sender, EventArgs e)
{
//HorizontalScrollbar属性设置为true,使其能显示水平方向的滚动条
listBox1.HorizontalScrollbar = true;
//ScrollAlwaysVisible属性设置为true,使其能显示垂直方向的滚动条
listBox1.ScrollAlwaysVisible = true;
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "") //判断文本框中是否输入数据
{
MessageBox.Show("添加项目不能为空");//如果没有输入数据弹出提示
}else{
//否则
listBox1.Items.Add(textBox1.Text);//使用Add方法向控件中添加数据
textBox1.Text =""; //清空文本框
}
}
SelectionMode 枚举成员及说明
枚举成员 | 说明 |
---|---|
MultiExtended | 可以选择多项,并且用户可使用Shift键、Ctrl 键和箭头键来进行选择 |
MultiSimple | 可以选择多项 |
None | 无法选择项 |
One | 只能选择一项 |
private void Form1_Load(object sender, EventArgs e)
{
//SelectionMode属性值为SelectionMode枚举成员MultiExtended,实现在控件中可以选择多项
listBox1.SelectionMode = SelectionMode.MultiExtended;
}
private void button1_Click(object sender, EventArgs e)
{
//显示选择项目的数量
label1.Text = "共选择了: " + listBox1.SelectedItems.Count.ToString() + "项";
}
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")//判断文本框中是否输入数据
{ MessageBox.Show("添加项目不能为空");//如果没有输入数据弹出提示
} else { //否则
listBox1.Items.Add(textBox1.Text); //使用Add方法向控件中添加数据
textBox1.Text = "";
//清空文本框
}
}
private void Form1_Load(object sender, EventArgs e)
{
panel1.Visible = false; //隐藏panel控件
richTextBox1.Text = "姓名:芸烨湘枫\n性别:女ln 年龄: 27\n 民族:汉\n职业:医疗"; //设置RichTextBox控件的Text属性
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("请输出姓名");
//如果没有输入数据弹出提示
textBox1.Focus();
//使光标焦点处于文本框中
}
else
//否则
{
if (textBox1.Text.Trim() == "芸烨湘枫")
//判断文本框中是否输入“芸烨湘枫"
{
panel1.Show();//如果输入“芸烨湘枫”,则显示Panel控
}
else//否则
{
MessageBox.Show("查无此人");
//弹出提示
textBox1.Text = "";
//清空文本框
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
groupBox1.Text = "诗词";//设置控件的Text属性,使其显示“诗词”
}
1)在选项卡的标签部位显示图标
private void Form1_Load(object sender, EventArgs e)
{
tabControl1.ImageList = imageList1; //设 置控件的ImageList 属性为imageList1
//第一个选项卡的图标是imageList1中索引为0的图标
tabPage1.ImageIndex = 0;
tabPage1.Text = "选项卡1";//设置控件第一个选项卡的 Text属性
//第二个选项卡的图标是imageList1中索引为0的图标
tabPage2.ImageIndex = 0;
tabPage2.Text = "选项卡2";//设置控件第二个选项卡的Text属性
}
2)将选项卡显示为按钮
private void Form1_Load(object sender, EventArgs e)
{
tabControl1.ImageList = imageList1;
//设置控件的ImageList属性为imageList1
//第一个选项卡的图标是imageList1中索引为0的图标
tabPage1.ImageIndex = 0;
//第二个选项卡的图标是imageList1中索引为0的图标
tabPage2.ImageIndex = 0;
//将控件的Appearance属性设置为Buttons,使选项卡具有三维按钮的外观
tabControl1.Appearance = TabAppearance.Buttons;
}
private void Form1_Load(object sender, EventArgs e)
{
tabControl1.ImageList = imageList1;
//设置控件的ImageList属性为imageList1
//第一个选项卡的图标是imageList1中索引为0的图标
tabPage1.ImageIndex = 0;
//第二个选项卡的图标是imageList1中索引为0的图标
tabPage2.ImageIndex = 0;
Button btn1 = new Button();
//实例化- -个Button类,动态生成-一个按钮
btn1.Text = "新增按钮";
//设置按钮的Text属性
tabPage1.Controls.Add(btn1);
//使用Add方法,将这个按钮添加到选项卡1中
}
(1)以编程方式添加选项卡
private void Form1_Load(object sender, EventArgs e)
{ tabControl1.ImageList = imageList1;
//设置控件的ImageList属性为imageList1
//第一个选项卡的图标是imageList1中索引为0的图标
tabPage1.ImageIndex = 0;
//第二个选项卡的图标是imageList1中索引为0的图标
tabPage2.ImageIndex = 0;
//声明一个字符串变量,用于生成新增选项卡的名称
string Title = "新增选项卡" + (tabControl1.TabCount + 1).ToString();
TabPage MyTabPage = new TabPage(Title);
//使用TabControl控件的TabPages属性的Add方法添加新的选项卡
tabControl1.TabPages.Add(MyTabPage);
}
(2)以编程方式移除选项卡
private void button1_Click(object sender, EventArgs e)
{
//声明一个字符串变量,用于生成新增选项卡的名称
string Title = "新增选项卡" + (tabControl1.TabCount + 1).ToString();
TabPage MyTabPage = new TabPage(Title); //实例化 TabPage
//使用TabControl控件的TabPages属性的Add方法添加新的选项卡
tabControl1.TabPages.Add(MyTabPage);
}
private void button2_Click(object sender, EventArgs e)
{
if (tabControl1.SelectedIndex == 0)
//判断是否选择了要删除的选项卡
{
MessageBox.Show("请选择要删除的选项卡"); //如果没有选择, 弹出提示
}
else {
//使用TabControl控件的TabPages属性的Remove方法删除指定的选项卡
tabControl1.TabPages.Remove(tabControl1.SelectedTab);
}
}
private void button3_Click(object sender, EventArgs e)
{
tabControl1.TabPages.Clear(); //使用Clear方法删除所有的选项卡
}
MenuStrip控件是程序的主菜单。MenuStrip 控件取代了先前版本的MainMenu控件。MenuStrip 控件支持多文档界面、菜单合并、工具提示和溢出。可以通过添加访问键、快捷键、选中标记、图像和分隔条,来增强菜单的可用性和可读性。
单击工具栏中向下的箭头,添加工具栏项目时,在下拉菜单中有8种不同的类型,下面分别介绍。
StatusSrip控件通常处于窗体的最底部,用于显示窗体上对象的相关信息,或者显示应用程序的信息。
通常,StatusStrip 控件由ToolStripStatusLabel 对象组成,每个这样的对象都可以显示文本、图标或同时显示这两者。StatusStrip 还可以包含ToolStripDropDownButton、 ToolStripSplitButton 和ToolStripProgressBar控件。
private void Form1_Load(object sender, EventArgs e)
{
//在任务栏.上显示系统的当前日期
this.toolStripStatusLabel1.Text = DateTime.Now.ToShortDateString();
}
private void button1_Click(object sender, EventArgs e)
{
//进度条
this.toolStripProgressBar1.Minimum = 0;
//进度条的起始数值
this.toolStripProgressBar1.Maximum = 5000;
//进度条的最大值
this.toolStripProgressBar1.Step = 2;
//进度条的增值
for (int i = 0; i <= 4999; i++)
//使用for循环读取数据
this.toolStripProgressBar1.PerformStep();
//按照Step属性的数量增加进度栏的当前位置
}