我把这个取系统当前颜色的方法 Color myColor = myBitmap.GetPixel(MousePosition.X, MousePosition.Y);写到鼠标抬起的事件里,然后取得了一个color的值,  我还有前面赋值的颜色为Color.DarkViolet这个颜色,我想判断,当鼠标点的颜色为Color.DarkViolet时,运行其它代码,即 if (myColor == Color.DarkViolet)时,但是这样即使颜色一样,也是不行,我想知道这个怎么判断是否相等.

解决方案 »

  1.   

     
            private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
            {            
                Color myColor = myBitmap.GetPixel(MousePosition.X, MousePosition.Y);
                int x = e.X;
                int y = e.Y;
                  
                if (myColor.ToArgb() == Color.DarkViolet.ToArgb())
                {}
            }现在我这样比对颜色,但是为什么我点的myColor获取的,就是我声明的这个Color.DarkViolet颜色,可是还是不对呢?不明白了!!!!
      

  2.   

    笨方法:
    if (myColor.R == Color.DarkViolet.R && myColor.G == Color.DarkViolet.G && myColor.B == Color.DarkViolet.B)
                {}
      

  3.   

    额..不行,因为这样只不过是把toargb()的分别比较,
      

  4.   

    弱弱的问下 myBitmap 是什么
      

  5.   

    啊,sorry,我的失误,回12Lprivate Bitmap myBitmap;
    privite void xxx()
    {
     myBitmap = Win32APICall.GetDesktop();
    }
      

  6.   

    我到网上看了一下            if (myColor.ToArgb()==this.BackColor.ToArgb())
                {
                    
                }
    toargb()没错啊,我刚开始直接比较,发现这连个颜色不相等,因为他们的name不相等,但是他们的argb值是一样的,你判断这个就行了