首页 > 代码库 > 最近背单词蛋疼,想写个桌面note的小程序方便一下,嘛嘛,那就记录一下好了,毫无优化,自娱自乐。

最近背单词蛋疼,想写个桌面note的小程序方便一下,嘛嘛,那就记录一下好了,毫无优化,自娱自乐。

首先用的还是winform,因为WPF那一套忘得有点多。

第一个问题出在窗口位置挪动上,因为想用None风格的窗体,但是在onMouseMove事件中取MousePosition-e.X之后发现这个值是一定的,就是本来打算用鼠标坐标减去鼠标相对窗体坐标得到窗体相对屏幕坐标,但是在计算的时候如果把e.X取在onMouseMove事件中,那么这个e.X也是会随着鼠标移动而变化的,最终导致差不变,那就不能实现窗体移动了。

蛋疼了,最后在form类中设了两个私有变量Left,Top,在onMouseDown中取下点击时的坐标,在onMouseMove中用,这样解决了。

        private void AddVocabulary_MouseDown(object sender, MouseEventArgs e)        {            Left = e.X;            Top = e.Y;        }        private void AddVocabulary_MouseMove(object sender, MouseEventArgs e)        {            if (e.Button == MouseButtons.Left)            {                Point Pos = new Point(MousePosition.X - Left, MousePosition.Y - Top);                Point Pos2 = new Point(Left, Top);                label1.Text = Pos.ToString() + Pos2.ToString() + MousePosition.ToString() + this.Location.ToString();                this.Location = Pos;            }        }

看看以后能不能想点更好的办法。