C#学习笔记 15.01
(学习视频来自bilibili的传智播客赵老师基础教学视频)
断更之后的小爆发?
做一个走马灯?
Timer 这个控件,是间隔一定时间就触发一个事件(可以在组件这个分类下找到他)
SoundPlayer sp = new SoundPlayer();
sp.SoundLocation = @“指向 wav 格式音乐的一个路径”;
sp.Play();
这个东西可以实现播放音乐。
把文本框的东西与 lable 进行同步显示
这要利用文本框的 textchenge 事件
主窗体一关,所有窗体就都关了,应用程序就结束了。
窗体的左上角是我们的零零坐标。
关键代码。。就一句
label1.Text = label1.Text.Substring(8, 2) + label1.Text.Substring(0, 8);
原理就是加了上面说的 timer 控件
把刚才说的那一句写在这个控件里面,将该控件属性设置下,500毫秒执行一次,执行代码就是上面那个……配合一个 lable 显示,将 lable.text 初值设置成 1 2 3 4 5 就OK了
多选和单选控件
这玩意最重要的就是 Checked 这个属性了,
这里面重点就是这个单选框需要容器,不然的话就会产生一堆选项只能选一个。
整一个登陆的小例子
分老师和学生两种身份进行登陆。
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 _05_DengLuQi
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void dengLu_Click(object sender, EventArgs e)
{
if (yongHuMing.Text == null)
{
MessageBox.Show("用户名不能为空!");
}
else if (miMa.Text == null)
{
MessageBox.Show("密码不能为空!");
}
else if (laoShi.Checked == true)
{
if (yongHuMing.Text == "Teacher" && miMa.Text == "123")
{
MessageBox.Show("登陆成功!");
}
else
{
MessageBox.Show("用户名或密码不正确!");
}
}
else if (xueSheng.Checked == true)
{
if (yongHuMing.Text == "Student" && miMa.Text == "123")
{
MessageBox.Show("登陆成功!");
}
else
{
MessageBox.Show("用户名或密码不正确!");
}
}
else
{
MessageBox.Show("请选择身份!");
}
}
}
}
其实可以很清楚的看出来,核心依旧是代码部分,也就是我们在控制台打下的基础。
子窗体
找到一个叫做 IsMdiContainer 将之改为 true ,它就成为了父窗体。
想要让子窗体显示在父窗体内部,就需要确定父子关系。。。用 MdiParent 这个属性指向一下
Form4 form4 = new Form4();
form4.MdiParent = this;
form4.Show();
LayoutMdi(MdiLayout.TileVertical)
此方法参数为一个枚举,对打开的子窗体进行按照某种规则的排列。
PictureBox 控件
控件有箭头的先看箭头,
这个控件 image 控制图片路径
sizemode 控制图片布局
代码上给路径用
picturebox1.Image = Image.FromFile(路径)
拿到目标下所有文件路径,用 Directory
再强调一下 Directory 操作文件夹,file 操作文件。。。
ComboBox 控件
这个是下拉菜单
DropDownStyle 这个属性比较重要,涵盖了三种常见的下拉菜单……
Textbox
还有个指示是否换行 WordWrap
passwordchar 是否是密码,嗯输入掩盖
textchange() 文本有改变就调用的方法
Listbox
一个可以选择的列表
先拿到集合 item 然后往里头 add 就能实现代码添加
这个东西的单击事件是指的单击列表里面的某一个元素的事件,当单击的时候就可以获得被单击的对象在 listbox 中的 item 数组中的索引 listbox.selectedindex(这个属性返回当前选中项的索引)
OpenFileDialog ofd = new OpenFileDialog() 文件选择对话框
ofd.Title = 对话框标题
ofd.Multiselect = 是否允许多选(默认false)
ofd.InitialDirectory = 默认打开路径
ofd.Filter = 限定搜索类型 “媒体文件| .mp3|图片文件|.jpg” 竖线划分对文件的限定和描述
ofd.ShowDialog() 展示出来对话框
string【】 str = ofd.FileNames 接收读取的所有文件的全路径
SaveFileDialog ofd = new SaveFileDialog();
这个就是保存,对话框是一样的。
string path = sfd.FileName;接收上面选择的路径
string text = textbox.text.trim();接收文本框中的信息
为了让内存能用完就释放,流的用法,前面有讲
using(FileStream fsw = new FileSrteam(path,FileMode.OpenOrCreat,FileAccess.write))
{
byte【】 buffer = System.Text.Encoding.Default.GetBytes(text);转二进制
fsw.write(buffer,0,buffer.lenght)挑着有效的写进去
其实这段写的不严谨,没体现处来流的优势,不过也没啥,毕竟谁能在一个对话框中输入好多M的字呢,,
}
textbox 中的颜色可以改字体,改颜色,改显示方式,有这个观念,需要的时候百度就好