Windows Form -----内容(1)
窗体:
一、控制标题栏
Text--控制标题栏的文字
Icon--控制标题栏的图标
MaximizeBox--窗体标题栏的右上角是否有最大化框(ture/false)
MinimizeBox--窗体标题栏的右上角是否有最小化框(ture/false)
ControlBox--所有的最大化、最小化、关闭按钮(ture/false)
二、控制背景
BackColor--控制背景色
BackgroundImage--控制背景图
BackgroundImageLayout - 背景的布局方式
Tile--平铺;Center--居中;Stretch--拉伸;Zoom--按比例缩放
三、控制边框
FormBorderStyle--控制边框的样式
Sizable--可调边框;FixedSingle--不可调边框;None--无边框。
Size (Width,Height):窗体的大小。
MinimumSize (Width Height)最小的大小//基本不用
MaximumSize (Width Height) 最大的大小//基本不用
四、控制背景
ForeColor -- 文字颜色
Font--文字字体
五、辅助属性
WindowState -- 窗体的启动状态。
Normal--设计时的大小。Maximized--窗体启动最大化。Minimized--启动最小化。
StartPosition --窗体的启动位置。
CenterScreen -- 在屏幕中央
ShowInTaskbar(true/false) - 窗体运行时,是否在任务栏显示。
TopMost (true/false)- 是否置于顶层显示
Opacity -- 透明度。100%完全不透明。0%完全透明。
TransparencyKey - 窗体的透明色。
案例一:做一个遮罩窗体:
1.把边框去掉。 FormBorderStyle = none;
2.设为启动最大化。 WindowState = Maximized
3.设背景色为黑色。 BackColor=black
4.设为顶层窗体 TopMost = true
5.设置不在任务栏显示。 ShowInTaskbar=false
技巧:添加一个新窗体并设为启动窗体:
1.在解决方案管理器的项目右击,选择添加-windows窗体。
2.在解决方案管理器中,把Program.cs打开,修改后面的Application.Run().
案例二:做一个不规则的窗体:
1.找一个不规则的透明底色的图片。
2.把窗体背景设为这张图片。
3.设置窗体的透明色TransparencyKey
4.把边框去掉。FormBorderStyle=none
第二大内容:三个最常用的控件:
标签:Label
Text - 标签文字
Image - 图像
TextAlign - 文字的位置9个位置
ImageAlign - 图像的位置9个位置
AutoSize - True-自动调整大小,只有一个控制点。False-手动调整大小,有8个控制点。
ForeColor——文字色
BackColor——背景色
Font——字体
按钮:Button
Text - 按钮文字
Image - 按钮图片
TextAlign - 文字的位置9个位置
ImageAlign - 图像的位置9个位置
FlatStyle- 按钮的形态。 Standard-标准。Flat-平面状态。Popup-稍微凸出一点。
FlatAppearence - 按钮边框形成的详细设置。
ForeColor——文字色
BackColor——背景色
Font——字体
注:窗体中有两个很重要的属性: AcceptButton,CancelButton分别用来指定两个按钮。在窗体上按回车键会自动调用AcceptButton中的代码,按ESC键会调用CancelButton的代码。
文本框:TextBox
Text - 按钮文字
MultiLine-是否是多行文本框。true-多行文本,false-单行文本
PasswordChar-密码框中的字符样式
ReadOnly-只读,不能改
MaxLength-最多输入多少
案例三:做一个登录窗体,并实现登录功能。
RadioButton(单选),CheckBox(多选)
Text-单选按钮上的文字
Checked (True\false)- 单选按钮是否被选中
Tag - 一般是用保存单选按钮背后的值。
Image - 图像
TextAlgin,ImageAlign
Appearance:按钮外观。Normal-普通的单选按钮。Button-按钮形式的单选按钮
Font,ForeColor,BackColor。
案例(单选):如何从一堆单选按钮中获得被选中的项。
//遍历窗体的每个控件
foreach (Control ctrl in this.Controls)
{
//判断每个控件是否是RadioButton
if (ctrl is RadioButton)
{
//如果是RadioButton就强转成RadioButton
RadioButton rb = (RadioButton)ctrl;
//如果被选中了,就。。。。
if (rb.Checked)
{
if (Convert.ToInt32(rb.Tag) < 4)
{
label1.Text = "高学历啊";
}
else
{
label1.Text = "一般的学历啊";
}
}
}
}
案例(多选): int sum=0;
foreach (Control ctr in groupBox2.Controls)
{
if (ctr is CheckBox)
{
CheckBox cb = (CheckBox)ctr;
if (cb.Checked)
{
sum +=Convert.ToInt32(cb.Tag);
}
}
}
label2.Text = "总价是:" + sum + "元";
容器:GroupBox或Panel
案例:如何解决一个窗体多组单选按钮分开选择的情况?
使用GroupBox或Panel等容器性面板。