C#计时器;控件移动;获取鼠标坐标;事件调用事件;
来源:互联网 发布:化工制药知乎 编辑:程序博客网 时间:2024/05/17 03:02
目的:我要完成的目的是,做一个计时器,显示时间的控件可以任由我移动,随意改变显示时间字体的大小。双击时间控件,置0重新开始;单击时间控件,暂停,再单击,继续。
首先是已经完成的界面:
一、获取鼠标相对于窗体左上角的位置坐标
Point p=this.PointToClient(Control.MousePosition);
这一句代码是移动控件的核心代码
二、事件调用事件
为了实现,当我们按下鼠标时,触发MouseMove事件;
(1)为显示时间的控件建一个MouseDown事件,当事件触发的时候,再为此控件建立一个MouseMove事件;
(2)为显示时间的控件建一个MouseUp事件,当事件触发的时候,删除此控件的MouseMove事件;
(3)MouseMove事件中代码就是获取鼠标相对于窗体左上角的坐标,然后做简单的处理,作为显示时间控件的坐标。
三个事件代码如下:
private void label1_MouseDown(object sender, MouseEventArgs e) { this.label1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.label1_MouseMove); } private void label1_MouseUp(object sender, MouseEventArgs e) { this.label1.MouseMove -= new System.Windows.Forms.MouseEventHandler(this.label1_MouseMove); } private void label1_MouseMove(object sender, MouseEventArgs e) { Point p=this.PointToClient(Control.MousePosition); label1.Location = new Point(p.X-label1.Width/2,p.Y-label1.Height*2/3); }
这个程序的主要代码:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace Time{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } int F = 0; int Count = 0; int F2 = 0; int Count2 = 0; private void Form1_Load(object sender, EventArgs e) { label1.Text = F.ToString() + " : " + Count.ToString(); } public void BgChange() { this.BackColor = Color.Red; } private void timer1_Tick(object sender, EventArgs e) { Count++; if (Count == 60) { F++; Count = 0; } label1.Text = F.ToString()+" : "+Count.ToString(); if(F<F2) this.BackColor = DefaultBackColor; if (F == F2 && Count == Count2) { label1.Text = "STOP"; timer1.Enabled = false; BgChange(); F = 0; Count = 0; } } private void button1_Click(object sender, EventArgs e) { timer1.Enabled = true; Count = 0; F = 0; this.BackColor = DefaultBackColor; F2 = (int)numericUpDown1.Value; Count2 = (int)numericUpDown2.Value; // MessageBox.Show(F2.ToString() + Count2.ToString()); } private void button2_Click(object sender, EventArgs e) { if (timer1.Enabled == true) { timer1.Enabled = false; button2.Text = "继续"; } else { timer1.Enabled = true; button2.Text = "暂停"; } } //改变字体样式 private void toolStripButton1_Click(object sender, EventArgs e) { } //改变字体样式 private void toolStripButton2_Click(object sender, EventArgs e) { fontDialog1.Font = label1.Font; if (fontDialog1.ShowDialog() == DialogResult.OK) { label1.Font = fontDialog1.Font; } } private void label1_DoubleClick(object sender, EventArgs e) { button1_Click(sender, e); } private void label1_Click(object sender, EventArgs e) { if (timer1.Enabled == false) { timer1.Enabled = true; } else { timer1.Enabled = false; } } private void toolStripButton1_Click_1(object sender, EventArgs e) { about s = new about(); s.ShowDialog(); } private void label1_MouseDown(object sender, MouseEventArgs e) { this.label1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.label1_MouseMove); } private void label1_MouseUp(object sender, MouseEventArgs e) { this.label1.MouseMove -= new System.Windows.Forms.MouseEventHandler(this.label1_MouseMove); } private void label1_MouseMove(object sender, MouseEventArgs e) { Point p=this.PointToClient(Control.MousePosition); label1.Location = new Point(p.X-label1.Width/2,p.Y-label1.Height*2/3); } }}
请多多指正!!
阅读全文
0 0
- C#计时器;控件移动;获取鼠标坐标;事件调用事件;
- 鼠标事件获取鼠标坐标
- 获取鼠标坐标 clientX clientY 事件属性
- js 鼠标 移动 事件 获取 id
- Qt编程获取鼠标移动事件
- C# 重写鼠标移动窗体事件
- js 鼠标事件 鼠标坐标
- C#如何监听全局的事件-例如鼠标移动事件
- C#如何监听全局的事件-例如鼠标移动事件
- C#如何监听全局的事件-例如鼠标移动事件
- c# 调用API mouse_event 模拟鼠标事件
- c# 调用API mouse_event 模拟鼠标事件
- TreeView控件中拖拽事件与鼠标事件的坐标问题(MouseEventArgs 和 DragEventArgs 坐标问题)
- c#获取鼠标坐标
- C# 获取鼠标坐标
- 发现:Click事件也能获取鼠标单击的坐标
- Click事件也能获取鼠标单击的坐标
- 获取鼠标点击事件并显示相对横轴纵轴坐标
- 宏函数操作符 可变参数操作
- 2017.02.15-2017.05.15DEBUG日记(QT+C++BUG)
- 【CSS】CSS几种居中及实现过程
- redis的应用场景
- APK反编译失败b.a.a.e: resource spec: 0x0101xxxx
- C#计时器;控件移动;获取鼠标坐标;事件调用事件;
- parallel reduction
- Tortoisegit 访问Github设置教程
- POJ
- 搜索 B
- Office2016方程编号方法
- 数字货币开发专题(什么是比特币挖矿机)
- 新手基础(一)封装、setter和getter
- java常用基本数据类型