一.创建一个用于登录的Login的复合控件
1.右击项目文件,点击添加用户控件,设置为控件名为Login。
2.拉动两个lable控件,两个textBox控件,一个button,一个CheckBox控件。
3.将控件的权限(Modifiers)设置为Public。
二.将控件CheckBox与textBox2(显示密码的textBox)的控件绑定点击事件。
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
textBox2.PasswordChar = '\0';
}
else { textBox2.PasswordChar = '*'; }
}
三.重新生成项目,点击工具箱打开,打开自定义控件Login拖入到Form1中,添加listBox控件。
四.为Login的button控件添加自定义的点击事件。(注意设置Login中的button控件权限为公开)
五.给Form1窗口添加ContextMenuStrip菜单栏,里面设置一个删除的选项
六.为listBox添加点击事件
private void listBox1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
if (listBox1.SelectedItems.Count != 0)
{
删除ToolStripMenuItem.Enabled = true;
}
else
{
删除ToolStripMenuItem.Enabled = false;
}
this.contextMenuStrip1.Show(listBox1, e.Location);
}
}
七.为删除按钮添加点击事件
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
listBox1.Items.Remove(listBox1.SelectedItem);
string str = JsonConvert.SerializeObject(listBox1.Items, Formatting.Indented);
File.WriteAllText("登陆日志.txt", str);
listBox1.ClearSelected();
}
八.总代码
using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace winform对json数据的存储和读取 { public partial class Form1 : Form { public Form1() { InitializeComponent(); login1.button1.Click += new EventHandler (this.A); } private void A(object sender, EventArgs e) { if (login1.textBox1.Text != "" && login1.textBox2.Text != "") { listBox1.Items.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + login1.textBox1.Text+"登陆了此页面"); string str = JsonConvert.SerializeObject(listBox1.Items, Formatting.Indented); File.WriteAllText("登陆日志.txt",str); } else { MessageBox.Show("账号密码不能为空"); } } private void 删除ToolStripMenuItem_Click(object sender, EventArgs e) { listBox1.Items.Remove(listBox1.SelectedItem); string str = JsonConvert.SerializeObject(listBox1.Items, Formatting.Indented); File.WriteAllText("登陆日志.txt", str); listBox1.ClearSelected(); } private void listBox1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { if (listBox1.SelectedItems.Count != 0) { 删除ToolStripMenuItem.Enabled = true; } else { 删除ToolStripMenuItem.Enabled = false; } this.contextMenuStrip1.Show(listBox1, e.Location); } } } }