事件由系统触发,程序会运行方法,包含2个参数 sender 和 eventargs。 send是发起的对象
this.button1.Click += new System.EventHandler(this.btn按钮_Click);
事件发起人要正确转换出它的类型,才能拿到信息。
private void btn触发事件(object sender, EventArgs e)
{
//Button btn = (Button)sender;
//MessageBox.Show(btn.Tag.ToString());
}
消息盒子:1 消息内容 2消息标签 3 按钮数量样式 4 消息内容位置的图标(三角感叹号,圆形叉号)
//窗体关闭之前发生的
private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult result = MessageBox.Show("确认要关闭窗体吗?", "关闭确认",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Question);
if (result == DialogResult.Cancel)//用户取消关闭
{
e.Cancel = true;
}
}
消息返回值:
public enum DialogResult
{
None,
OK,
Cancel,
Abort,
Retry,
Ignore,
Yes,
No
}
键盘的获取:
鼠标按键获取: 按钮在事件中绑定 鼠标的 MouseDown
#region 右击事件
private void btn_MouseDown(object sender, MouseEventArgs e)
{//x-
if (e.Button == MouseButtons.Right)//是右键
{
if (sender is Button btn)
{
FrmQuickSet frm = new FrmQuickSet(btn.Text?.ToString(), btn.Tag?.ToString());
//显示出按钮配置新窗体
if (frm.ShowDialog() == DialogResult.OK)
{
btn.Text = frm.m命令键;
btn.Tag = frm.m命令值;
}
//frm.textBox1_命令名称.Text;
}
}
if (e.Button == MouseButtons.Left)//是左键
{
if (sender is Button btn)
{
if (btn.Tag!=null)
{
try
{
byte[] buffer = rs485.TxCMD(btn.Tag.ToString());//获取数据包
Help_SerialPort.serialPort1.Write(buffer, 0, buffer.Length);//串口发送
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
//throw;
}
}
}
}
}