关于鼠标事件的问题想请教一下大家

jefferyandwar 2006-11-13 07:02:04
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication18
{
public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();
}
private Point[] pt;

private void Form1_MouseEnter(object sender, System.EventArgs e)
{
label1.Text = "目标出现!";
}

private void Form1_MouseLeave(object sender, System.EventArgs e)
{
label1.Text = "目标逃逸!";
}

private void Form1_MouseHover(object sender, System.EventArgs e)
{
// label1.Text="目标在上方!";
}

private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
pt[0] = new Point(e.X, e.Y);
if (e.Button == MouseButtons.Left)
{
this.Cursor = Cursors.Cross;
}
else if (e.Button == MouseButtons.Right)
{
this.Cursor = Cursors.Hand;
}
}

private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
pt[1] = new Point(e.X, e.Y);
Graphics g = this.CreateGraphics();
g.DrawCurve(Pens.Blue, pt);
pt[0] = pt[1];
}
else if (e.Button == MouseButtons.Right)
{
Graphics g = this.CreateGraphics();
g.FillRectangle(Brushes.White, e.X - 5, e.Y - 5, 10, 10);
}
else if (e.Button == MouseButtons.Middle)
{
Graphics g = this.CreateGraphics();
g.DrawString("a", new Font("Verdana", 9, FontStyle.Bold), Brushes.Red, e.X, e.Y);
}
textBox1.Text = e.X.ToString();
textBox2.Text = e.Y.ToString();
// else
// {
// pt[1]=new Point(e.X,e.Y);
// Graphics g=this.CreateGraphics();
// Point leftup=GetPoint(pt[1],pt[0]);
// float width=Math.Abs(pt[1].X-pt[0].X);
// float height=Math.Abs(pt[1].Y-pt[0].Y);
// g.FillEllipse(Brushes.Pink,leftup.X,leftup.Y,width,height);
// pt[0]=pt[1];
// }

}
private Point GetPoint(Point a, Point b)
{
return new Point(Math.Min(a.X, b.X), Math.Min(a.Y, b.Y));
}

private void Form1_Load(object sender, System.EventArgs e)
{
pt = new Point[2];
}

private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
this.Cursor = Cursors.Default;
}
}
}
这段代码能够运行通过,但是它的功能却实现不了是怎么回事,谢谢各位大虾 菜鸟这里有礼了/
...全文
139 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dyw31415926 2006-11-14
  • 打赏
  • 举报
回复
楼上的说得有道理,我在vs2005中测试了楼主的程序,没问题呀,功能也都能实现
挺好玩的一个小程序!
jefferyandwar 2006-11-14
  • 打赏
  • 举报
回复
嘎嘎 ok 了
谢谢 你们了
AKQJ10 2006-11-13
  • 打赏
  • 举报
回复
构造函数里加上
this.MouseEnter += new System.EventHandler(this.Form1_MouseEnter);
this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseUp);
this.MouseLeave += new System.EventHandler(this.Form1_MouseLeave);
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
this.MouseHover += new System.EventHandler(this.Form1_MouseHover);
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseDown);
this.Load += new System.EventHandler(this.Form1_Load);
等等
jefferyandwar 2006-11-13
  • 打赏
  • 举报
回复
就是执行以后, 鼠标放到窗体上 什么也不显示 label处应该显示的字也不显示 textbox 处应该显示的坐标也没有 在窗体上点左键 显示 十字图标也没有 .........
lizhizhe2000 2006-11-13
  • 打赏
  • 举报
回复
不知道是哪个功能没有实现!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧