1 Winform属性和事件
从左向右依次为:按分类属性,按字母排序属性,属性,事件
1)控件属性
visible:指示一个控件是否可见。
Enabled:指示一个控件是否可用。
Anchor设置为Up,Bottom,Left,Right后控件会随着窗口大小的改变而改变
2)查看控件的默认事件:在控件上,右键----》属性,然后选择事件图标,显示出来的蓝色的就是默认事件
双击控件注册的都是控件默认被选中的那个事件。
比如点击Button控件然后添加的事件就是默认的事件:Click
3)给控件添加非默认事件:右键---》属性,选择事件图标,找到像添加的事件,例如:MouseEnter,在下面两个任一框中双击即可添加事件
然后在Forms1.cs中会出现如下代码,在该函数中写事件的实现
private void button3_MouseEnter(object sender, EventArgs e)
{
}
2 退出程序:
1).this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;
2).Application.Exit(); 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;
3).Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题;
4).System.Environment.Exit(0); 这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。
3 MessageBox.Show
1).MessageBox.Show(“Hello~~~~”);
2).if (MessageBox.Show(“Delete this user?”, “Confirm Message”, MessageBoxButtons.OKCancel) == DialogResult.OK)
{
//delete
}
询问是否删除时会用到这个。
4 TextBox和Label
属性:
自动换行:WordWrap:true
添加滚动条:ScrollBars进行设置
PasswordChar设置,可以将输入的东西全变为设置的char字符,例如设置为*
Label:显示文本
实现textbox写入的内容显示到label中
private void txtWords_TextChanged(object sender, EventArgs e)
{
lblText.Text = txtWords.Text;
}
实现效果:
5 Lbel实现跑马灯和闹钟
跑马灯:每次都把第一个字符截取出来,放到整个字符串的最后
新建两个label :labelshow和labeltimer 分别用来显示跑马灯 和当前时间
新建两个定时器,timer1和timer2 分别用来控制跑马灯显示和时间显示
显示跑马灯:
private void timer1_Tick(object sender, EventArgs e)
{
labelshow.Text = labelshow.Text.Substring(1) + labelshow.Text.Substring(0, 1);
}
每隔一秒钟就把当前的时间赋值给label,添加闹钟及音乐
private void timer2_Tick(object sender, EventArgs e)
{
labeltimer.Text = DateTime.Now.ToString();
//15:32:50播放音乐叫我起床
if (DateTime.Now.Hour == 15 && DateTime.Now.Minute == 34 && DateTime.Now.Second == 50)
{
//播放音乐
SoundPlayer sp = new SoundPlayer();
sp.SoundLocation = @"C:\Users\SpringRain\Desktop\1.wav";
sp.Play();
}
}
当窗体加载的时候 将当前系统的时间赋值给我的Label
private void Form1_Load(object sender, EventArgs e)
{
labeltimer.Text = DateTime.Now.ToString();
}
效果:
6 textbox的文件保存
private void btSave_Click(object sender, EventArgs e)
{
using (FileStream fsWrite = new FileStream(@"D:jacky\桌面\newnew.txt", FileMode.OpenOrCreate, FileAccess.Write))
{
string str = textWords.Text.Trim();
byte[] buffer = System.Text.Encoding.Default.GetBytes(str);
fsWrite.Write(buffer, 0, buffer.Length);
}
MessageBox.Show("保存成功");
}