以下笔记都是在我爱自学网上学习整理的,方便自己复习回顾,如果能帮到读者就更好了
一:基础控件
1:窗体的HelpButton属性
HelpButton即是否显示帮助按钮,该属性不能和最小化,最大化这两个属性同时使用,如果仅仅是将HelpButton属性设为true,运行程序是看不到效果的,因为其遮住了HelpButton,必须将最小化和最大化都设置为false才行
2:禁止用户改变窗体大小
可以将窗体最大和最小的数值设置为一致
3:可以通过工具箱拖拽给窗体添加控件(按钮,菜单等),也可以直接通过代码添加
(通过窗体类的Controls类的Add方法):
Button button2 = new Button();
button2.Text = "通过代码添加的按钮";
button2.Size = new Size(130, 30);
button2.Location = new System.Drawing.Point(100, 40);
Controls.Add(button2);
4:MDI多文档界面
首先添加一个父窗体,将其IsMdiContainer设置为true,然后创建一个子窗体,将其父窗体设置为之前的父窗体。设置子窗体在父窗体内的布局可以用LayoutMdi方法
private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)
{
ChildForm myChildForm = new ChildForm();
myChildForm.MdiParent = this;
myChildForm.Show();
}
private void 层叠ToolStripMenuItem_Click(object sender, EventArgs e)
{
//cascade:层叠,瀑布
LayoutMdi(MdiLayout.Cascade);
}
private void 水平ToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.TileHorizontal);
}
private void 垂直ToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.TileVertical);
}
private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}
5:你追我赶小游戏
private void label1_MouseEnter(object sender, EventArgs e)
{
Random r = new Random();
//MessageBox.Show(r.Next(0, 10).ToString());
int maxX = this.ClientSize.Width-label1.Width;
int maxY = this.ClientSize.Height - label1.Height;
label1.Location = new Point(r.Next(0, maxX+1),r.Next(0,maxY+1));
}
private void label1_Click(object sender, EventArgs e)
{
MessageBox.Show("可以的");
}
运行后鼠标一进入Label标签,标签就会重新定位,是点击不到标签的,可以将窗口大小缩小,然后就可以点击到了
6:Button控件
添加两个窗口,点击第一个窗口的按钮弹出第二个窗口,点击第二个窗口的按钮弹出消息框
//第一个窗口的按钮点击事件
private void button1_Click(object sender, EventArgs e)
{
MainForm._myForm1 = this;//静态类的静态字段,用来存储主窗口
Form2 myForm2 = new Form2();
myForm2.Show();
}
//第二个窗口的按钮点击事件
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("我就变成了沙雕");
//要想关闭所有的窗体,只需要关闭主窗体就行了
MainForm._myForm1.Close();
}
7:Label和TextBox控件
要实现下面这种效果,就需要用到这两个控件了
TextBox如果为密码框,可以设置其PasswordChar属性
给相应控件添加相应的事件即可:
private void textBox1_TextChanged(object sender, EventArgs e)
{
label6.Text = textBox1.Text;
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
label7.Text = textBox2.Text;
}
private void Form1_Load(object sender, EventArgs e)
{
label6.Text = null;
label7.Text = null;
}
8:RichTextBox
Demo效果如下: