蓝客社区

游客 您好,登录 | 注册

致蓝客社区的会员们:
即日起,社区论坛部分技术交流版块启用身份验证机制,须符合该版块要求的技术标准才能进入,不便之处敬请见谅!
网络信息安全交流QQ群:187228、会员交流聊天QQ群:42417627
论坛 » .NET编程技术 » 这是什么原因?

这是什么原因? (2蓝豆)

zcs独裁者积分等级:LV0 经验等级:Exp0
#1发表于 2014-03-20 10:49 回复:2 查看:14449
 public partial class Form1 : Form
    {
        Point prePoint, curPoint;
        int PointNumber = 0;
        MOUSE_STATE mouse_state;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            pictureBox1.Image = Image.FromFile("D:\\图片resouce\\底图.jpg");
            this.WindowState = FormWindowState.Maximized;
        }

        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            textBox1.Text = PointNumber.ToString();
            if (mouse_state == MOUSE_STATE.MOUSE_STATE_DOWN)
            {
                curPoint = Control.MousePosition;
                if (prePoint == curPoint)
                {
                    MessageBox.Show("相等");
                }
                PointNumber++;
                if (2 == PointNumber)
                {
                    prePoint = curPoint;
                }
                else if (3 == PointNumber)
                {
                    prePoint = curPoint;
                }
                else if (4 == PointNumber)
                {
                    prePoint = curPoint;
                    PointNumber = 2;
                }
            }
          
        }

        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            PointNumber = 1;
            prePoint = Control.MousePosition;
            mouse_state = MOUSE_STATE.MOUSE_STATE_DOWN;
        }

        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            PointNumber = 0;
            mouse_state = MOUSE_STATE.MOUSE_STATE_UP;
        }
    }
    public enum MOUSE_STATE
    { 
        MOUSE_STATE_UP,
        MOUSE_STATE_DOWN
    }
按照逻辑 在Mouse_Mouse事件里是不可能打印出“相等”的啊?为什么会出现这个情况。在什么条件下促使了if条件的满足?(打印出相等的情况很少)


蓝盟小侃积分等级:LV1 经验等级:Exp0社区管理员
#2发表于 2014-03-20 22:59

@zcs独裁者
public partial class Form1 : Form { Point prePoint, curPoint; int PointNumber = 0; MOUSE_STATE mouse_state; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { pictureBox1.Image = Image.FromFile("D:\\图片resouce\\底图.jpg"); this.WindowState = FormWindowState.Maximized; } private void pictureBox1_MouseMove(object se……

你这段代码我调试了一下,正如常理,基本没有出现相等的情况,是合理的,有什么疑问吗?
zcs独裁者积分等级:LV0 经验等级:Exp0
#3发表于 2014-03-20 23:06

@蓝盟小侃
你这段代码我调试了一下,正如常理,基本没有出现相等的情况,是合理的,有什么疑问吗?……

我在if里面设置断点。。。。。有时候会进入if 打印出相等,但这种情况很少。。。。。。。不知道什么原因 后来想了下 如果采样A点,然后鼠标移动,在移动过程中又经过A点,此时如果菜采样下一点的话就会出现相等。但是这个几率是多么的小啊?而且之前是我一直水平移动鼠标,并没有来回移动。。。。。。。。。。所以不知道是为什么了