为了实现在窗口内绘制以鼠标为中心的十字线,鼠标移动时十字线也移动,类似截图软件或者股票软件里面定位的东东.自己试着写了一个,但是效率不是很高,cpu占用率很高,而且动鼠标的时候明显感觉有延迟.谁能给个最优解或是说说思路是怎样的?
解决方案 »
- 请问如何让大段文字在网页中显示
- SelectSingleNode()和SelectNodes()的区别是什么啊
- 申明类型,网页读取进度,读数值(正则表达式)。
- WinForm中DataGrid控件排序问题
- 在在在继续问调出“SDK命令提示”
- 正则表达式分析html问题
- 关于C#报错信息 某个方法"并非所有的代码路径都有返回值" --- 是不是因为有了if语句的原因?为什么在VB.NET下就可以通过,C#就不行?~~~急
- 事件处理怎么一直为NULL??
- C#里有没有类似JAVA RMI的东西啊?
- 请问在哪注册.NET2003环境下的水晶报表
- 急!!!用什么方法可以解决文本发布后,保持文本段落格式?
- 中共中央关于测试某某网站下载速度的问题
Label lblVT; private void Form1_Load(object sender, EventArgs e)
{
lblHR = new Label();
lblVT = new Label(); this.Controls.Add(lblHR);
this.Controls.Add(lblVT); lblHR.Text = "";
lblHR.AutoSize = false;
lblHR.Width = this.Width;
lblHR.Height = 1;
lblHR.BackColor = Color.Black;
lblHR.Left = 0;
lblHR.Anchor = AnchorStyles.Left | AnchorStyles.Right;
lblHR.BringToFront(); lblVT.Text = "";
lblVT.AutoSize = false;
lblVT.Height = this.Height;
lblVT.Width = 1;
lblVT.BackColor = Color.Black;
lblVT.Top = 0;
lblVT.Anchor = AnchorStyles.Top | AnchorStyles.Bottom;
lblVT.BringToFront();
} private void Form1_MouseMove(object sender, MouseEventArgs e)
{
lblHR.Top = e.Y;
lblVT.Left = e.X;
}
的思路真是好啊!值得学习!
wuyi8808(tm) studio 2005 :)
未必太偷工减料了吧!
改变鼠标光标为自定义就可以了.
画一个十字形,保存成icon文件,替换光标。
的方法不错。很简单也还能实用呵呵。快的很啊 。
private Pen pen = new Pen(Color.Black); private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.X != currentPoint.X || e.Y != currentPoint.Y)
{
currentPoint = new Point(e.X,e.Y);
this.Invalidate(true);
}
} protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.DrawLine(pen, 0, currentPoint.Y, this.Width, currentPoint.Y);
e.Graphics.DrawLine(pen, currentPoint.X , 0, currentPoint.X, this.Height);
} private void Form1_Closed(object sender, System.EventArgs e)
{
pen.Dispose();
}