在窗体上绘制一个包含若干小格的网格,并且实现鼠标点击其中任意的一个小格这个小格改变背景颜色。
--|--|--|--|--|--|--|--|--|--|--|--|--|-
--|--|--|--|--|--|--|--|--|--|--|--|--|-
--|--|--|--|--|--|--|--|--|--|--|--|--|-
--|--|--|--|--|--|--|--|--|--|--|--|--|-......郁闷要是能上传图片就好了:(

解决方案 »

  1.   

    可以考虑用button或panel控件代替表格 然后设置backgroudimage属性以改变背景图片
      

  2.   

    用GDI+,判断鼠标点击位置,根据位置改变对应小方格的颜色《程序员秘书》--源代码--图形GDI+,其中,有很多图形绘制技巧。详见:http://www.psec.net.cn
      
     
      

  3.   

    自己从Control派生一个,用GDI+自己绘制网格,响应鼠标事件,判断后绘制
    看看System.Drawing命名空间下的类,不难的
      

  4.   

    private int blockSize = 48;        private void Form1_Paint(object sender, PaintEventArgs e)
            {
                for (int i = 0; i < ClientRectangle.Width; i+=blockSize)
                {
                    e.Graphics.DrawLine(Pens.Red, i,0,i, ClientRectangle.Height);
                }
                for (int i = 0; i < ClientRectangle.Height; i += blockSize)
                {
                    e.Graphics.DrawLine(Pens.Red, 0, i, ClientRectangle.Width,i);
                }
            }        private void Form1_MouseClick(object sender, MouseEventArgs e)
            {
                int x = e.X / blockSize;
                int y = e.Y / blockSize;
                Graphics g = this.CreateGraphics();
                g.FillRectangle(Brushes.Black, x * blockSize, y * blockSize, blockSize, blockSize);
                g.Dispose();
            }
      

  5.   

    很简单的,用GDI+ 画就行了
      

  6.   

    用Grid来实现, 比较方便.我曾经用Grid写了一个日历,同你这个要求有相似的地方.GDI+当然也可以了.
      

  7.   

    郁闷啊,原来一直做B/S架构程序的,今天老板心血来潮,非让我做个Windows应用程序,
    看来光是这个GDI+就要学上一阵子了。刚才淘到了一本<<GDI+ Programming Creating Custom Controls Using C#>>不错!