C#基础学习笔记(十三)

阅读: 评论:0

C#基础学习笔记(十三)

C#基础学习笔记(十三)

C#基础学习笔记(十三)

1、MD5加密

存密码的时候需要加密

static void Main(string[] args)
{//123//202cb962ac59075b964b07152d234b70//202cb962ac5975b964b7152d234b70  x不一样//202cb962ac59075b964b07152d234b70 x2 加个0string s = GetMD5("123");Console.WriteLine(s);Console.ReadKey();
}
public static string GetMD5(string str)
{//创建MD5对象MD5 md5 = MD5.Create();//开始加密//需要将字符串转成字节数组byte[] buffer = Encoding.UTF8.GetBytes(str);//返回一个加密好的字节数组byte[] MD5Buffer = md5.ComputeHash(buffer);将字节数组转成字符串//return Encoding.UTF8.GetString(MD5Buffer);//这样转的都是乱码//将字节数组转成字符串//字节数组---字符串//1、将字节数组中每个元素按照指定的编码格式解析成字符串//2、直接将数组ToString();//3、将字节数组中的每个元素ToString();//尝试3string strNew = "";for (int i = 0; i < MD5Buffer.Length; i++) {//加x可以十进制转成十六进制strNew += MD5Buffer[i].ToString("x2");}return strNew;
}

2、什么是winform

应用程序是一种智能客户端技术,我们可以使用winform应用程序帮助我们获得信息或者传输信息等。

winform文件的组成:

1)属性

2)引用

3)Program(应用程序的主入口点)

4)Form1.cs(UI界面、designer文件、Form1后台代码)

运行的过程:

进入Program主函数,创建Form1的对象,创建时进入Form1的构造函数,而他是一个partial部分类,在designer文件里边也有部分类,这两个部分类组成了Form1类。接着进入构造函数InitializeComponent()初始化组件,定义在designer里边,在这里给各个组件初始化。每在窗体里边托控件的时候就是不停的创建这些对象。

3、控件的属性

Name:在后台要获得前台的控件对象,需要使用Name属性。

visible:指示一个控件是否可见。

Enabled:指示一个控件是否可用。

ContextMenuStrip:按钮绑定右键菜单

4、事件

事件:发生一件事情。

注册事件:双击控件注册的都是控件默认被选中的那个事件。

触发事件:

5、窗体

在Main函数当中创建的窗体对象,我们称之为这个窗体应用程序的主窗体。也就意味着,当你将主窗体关闭后,整个应用程序都关闭了。

6、TextBox控件

WordWrap:指示文本框是否换行。

PasswordChar:让文本框显示一个单一的字符

ScollBars:是否显示滚动条

事件:

TextChanged 当文本框中的内容发生改变的时候触发这个事件。

7、跑马灯练习

abcde
bcdea
cdeab
deabc
eabcd
abcde

string str=“abcde”;
str=str.Substring(1)+str.Substring(0,1);

8、Timer

在指定的时间间隔内做一件指定的事情。

代码:

public partial class Form1 : Form
{public Form1(){InitializeComponent();}private void timer1_Tick(object sender, EventArgs e){//MessageBox.Show("你中病毒了");label1.Text = label1.Text.Substring(1) + label1.Text.Substring(0, 1);}/// <summary>/// 当窗体加载的时候,将当前的系统时间赋给lable/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void Form1_Load(object sender, EventArgs e){lblTimer.Text = DateTime.Now.ToString();}/// <summary>/// 每隔一秒就把当前的时间赋给lable1/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void timer2_Tick(object sender, EventArgs e){lblTimer.Text = DateTime.Now.ToString();//设置一个闹钟if (DateTime.Now.Hour == 22 && DateTime.Now.Minute == 20 && DateTime.Now.Second == 50) {//播放音乐SoundPlayer sp = new SoundPlayer();sp.SoundLocation = @".WAV";sp.Play();}}
}

9、简单记事儿本应用程序

1)、在程序加载的时候,取消文本框的自动换行,以及让两个按钮和文本框隐藏
2)、点击登陆,判断是否登陆成功
3)、自动换行功能
4)、保存文本到一个指定目录下。

public partial class Form1 : Form
{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){txtWords.WordWrap = false;btnWordWrap.Visible = false;btnSave.Visible = false;txtWords.Visible = false;}/// <summary>/// 判断是否登陆成功/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnLogin_Click(object sender, EventArgs e){string name = txtName.Text.Trim();string pwd = txtPwd.Text;if (name == "admin" && pwd == "admin"){MessageBox.Show("欢迎进入记事儿本应用程序");btnWordWrap.Visible = true;btnSave.Visible = true;txtWords.Visible = true;label1.Visible = false;label2.Visible = false;txtName.Visible = false;txtPwd.Visible = false;btnLogin.Visible = false;btnRest.Visible = false;}else//登录失败{MessageBox.Show("用户名或密码错误,请重新输入");txtName.Clear();txtPwd.Clear();//让文本框获得焦点txtName.Focus();}}/// <summary>/// 自动换行/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnWordWrap_Click(object sender, EventArgs e){//当前是否是自动换行//如果是显示成取消自动换行//txtWords.WordWrap = true;if (btnWordWrap.Text == "自动换行"){//取消自动换行txtWords.WordWrap = true;btnWordWrap.Text = "取消自动换行";}else if (btnWordWrap.Text == "取消自动换行") {txtWords.WordWrap = false;btnWordWrap.Text = "自动换行";}}private void btnSave_Click(object sender, EventArgs e){using (FileStream fsWrite = new FileStream(@"D:C#peixunDay14", FileMode.OpenOrCreate, FileAccess.Write)) {string str = txtWords.Text.Trim();byte[] buffer = System.Text.Encoding.Default.GetBytes(str);fsWrite.Write(buffer, 0, buffer.Length);}MessageBox.Show("保存成功");}
}

10、单选和多选

checked:指示这个控件是否处于选中状态。

默认情况下,在一个窗体中,所有的单选按钮只允许选中一个,可以使用groupbox进行分组。

public partial class Form1 : Form
{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){//有一个没有选中if (rdoStudent.Checked || rdoTeacher.Checked) {string name = txtName.Text.Trim();string pwd = txtPwd.Text;if (rdoStudent.Checked){if (name == "student" && pwd == "student"){MessageBox.Show("学生登陆成功");}else{MessageBox.Show("登录失败");txtName.Clear();txtPwd.Clear();txtName.Focus();}}else{if (name == "teacher" && pwd == "teacher"){MessageBox.Show("老师登陆成功");}else{MessageBox.Show("登录失败");txtName.Clear();txtPwd.Clear();txtName.Focus();}}}//都没有选else{MessageBox.Show("选择登录身份");}}
}

11、MDI窗体的设计

1、首先确定一个父窗体。 将IsMdiContainer设置为true。
2、创建子窗体,并且设置他们的父窗体。

public partial class Form1 : Form
{public Form1(){InitializeComponent();}private void 显示子窗体ToolStripMenuItem_Click(object sender, EventArgs e){Form2 frm2 = new Form2();frm2.MdiParent = this;frm2.Show();Form3 frm3 = new Form3();frm3.MdiParent = this;frm3.Show();Form4 frm4 = new Form4();frm4.MdiParent = this;frm4.Show();}private void 横向排列ToolStripMenuItem_Click(object sender, EventArgs e){LayoutMdi(MdiLayout.TileHorizontal);}private void 纵向排列ToolStripMenuItem_Click(object sender, EventArgs e){LayoutMdi(MdiLayout.TileVertical);}
}

12、PictureBox

public partial class Form1 : Form
{public Form1(){InitializeComponent();}//获得指定文件夹的所有文件的全路径string[] path = Directory.GetFiles(@"D:示例图片");int i = 0;private void Form1_Load(object sender, EventArgs e){ pictureBox1.Image = Image.FromFile(@"D:示例图片4197_720.jpg");                     }/// <summary>/// 点击更换下一张图片/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button2_Click(object sender, EventArgs e){            i++;if (i == path.Length) {i = 0;}pictureBox1.Image = Image.FromFile(path[i]);}/// <summary>/// 点击上一张/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button1_Click(object sender, EventArgs e){i--;if (i < 0) {i = path.Length - 1;}pictureBox1.Image = Image.FromFile(path[i]);}
}

13、PictureBox和计时器

public partial class Form1 : Form
{public Form1(){InitializeComponent();}string[] path = Directory.GetFiles(@"D:示例图片");int i = 0;Random r = new Random();private void Form1_Load(object sender, EventArgs e){播放音乐//SoundPlayer sp = new SoundPlayer();‪E:音乐下载顺其自然 - 黄小琥.flac//sp.SoundLocation = @"E:音乐下载顺其自然 - 黄小琥.flac";//sp.Play();pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;pictureBox4.SizeMode = PictureBoxSizeMode.StretchImage;pictureBox5.SizeMode = PictureBoxSizeMode.StretchImage;pictureBox6.SizeMode = PictureBoxSizeMode.StretchImage;pictureBox1.Image = Image.FromFile(@"D:示例图片4197_720.jpg");pictureBox2.Image = Image.FromFile(@"D:示例图片4197_720.jpg");pictureBox3.Image = Image.FromFile(@"D:示例图片4197_720.jpg");pictureBox4.Image = Image.FromFile(@"D:示例图片4197_720.jpg");pictureBox5.Image = Image.FromFile(@"D:示例图片4197_720.jpg");pictureBox6.Image = Image.FromFile(@"D:示例图片4197_720.jpg");}private void timer1_Tick(object sender, EventArgs e){//每隔一秒钟换一张图片i++;if (i == path.Length) {i = 0;}pictureBox1.Image = Image.FromFile(path[r.Next(0, path.Length)]);pictureBox2.Image = Image.FromFile(path[r.Next(0, path.Length)]);pictureBox3.Image = Image.FromFile(path[r.Next(0, path.Length)]);pictureBox4.Image = Image.FromFile(path[r.Next(0, path.Length)]);pictureBox5.Image = Image.FromFile(path[r.Next(0, path.Length)]);pictureBox6.Image = Image.FromFile(path[r.Next(0, path.Length)]);}
}

本文发布于:2024-02-05 08:46:29,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170728287065034.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:学习笔记   基础
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23