1、新建一个用户控件, 插入文件框textBox1 和 textBox2, 以及登录按钮
2、把自定义控件拖入主窗体
3、自定义的 用户控件 代码 及具体说明如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class utc : UserControl
{
public utc()
{
InitializeComponent();
}
public event EventHandler evt; //创建一个winform特有事件对象
private void Button1_Click(object sender, EventArgs e)
{
if (this.evt != null)
{
MyArgs ma = new MyArgs();
ma.UserName = textBox1.Text;
ma.Password = textBox2.Text;
this.evt(this, ma); //点击登录按钮,触发此事件,并把当前对象作为参数,把控件两个文件框的值传出
if (ma.IsLogin)
{
this.BackColor = Color.Green;
}
else
{
this.BackColor = Color.Red;
}
}
}
}
public class MyArgs : EventArgs //EventArgs没有相关参数,就自定义一个类,并继承EventArgs
{
public MyArgs()
{
this.IsLogin = false; //构造方法初始化IsLogin值
}
public bool IsLogin { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
}
}
4、主窗体的代码及具体说明如下
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 WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
utc1.evt += Utc1_evt; //注册 自定义控件 事件
}
private void Utc1_evt(object sender, EventArgs e)
{
MyArgs ma = e as MyArgs; //事件触发后,把e转化为自定义的MyArgs对象
if (ma.UserName == "admin" && ma.Password == "123")
{
ma.IsLogin = true;
}
}
}
}