Выкладываю готовый код на си шарп как сделать сетку в виндоус формс . Программа для работы си шарп Windows Forms | Visual C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
pictureBox1.Image = (Image)new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics g = Graphics.FromImage(pictureBox1.Image);
Pen p = new Pen(Color.Red);
for (int i = 0; i < 9; i++)
{
g.DrawLine(p, new Point((pictureBox1.Width / 10 * (i + 1)), 0), new Point((pictureBox1.Width / 10 * (i + 1)), pictureBox1.Height));
g.DrawLine(p, new Point(0, (pictureBox1.Height / 10 * (i + 1))), new Point(pictureBox1.Width, (pictureBox1.Height / 10 * (i + 1))));
}
}
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
int X = pictureBox1.Width / 10;
int Y = pictureBox1.Height / 10;
for (int i = 1; i < 10; i++)
{
if (e.X <= (X * i))
{
for (int i1 = 1; i1 < 10; i1++)
{
if (e.Y <= (Y * i1))
{
Graphics a = Graphics.FromImage(pictureBox1.Image);
a.FillRectangle(Brushes.Black, (X * (i - 1)), (Y * (i1 - 1)), X, Y);
this.Refresh();
//MessageBox.Show((X * (i - 1)).ToString() + ":" + (X * i).ToString() + " - " + (Y * (i1 - 1)).ToString() + ":" + (Y * i1).ToString());
break;
}
}
break;
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
pictureBox1.Image = (Image)new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics g = Graphics.FromImage(pictureBox1.Image);
Pen p = new Pen(Color.Red);
for (int i = 0; i < 9; i++)
{
g.DrawLine(p, new Point((pictureBox1.Width / 10 * (i + 1)), 0), new Point((pictureBox1.Width / 10 * (i + 1)), pictureBox1.Height));
g.DrawLine(p, new Point(0, (pictureBox1.Height / 10 * (i + 1))), new Point(pictureBox1.Width, (pictureBox1.Height / 10 * (i + 1))));
}
}
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
int X = pictureBox1.Width / 10;
int Y = pictureBox1.Height / 10;
for (int i = 1; i < 10; i++)
{
if (e.X <= (X * i))
{
for (int i1 = 1; i1 < 10; i1++)
{
if (e.Y <= (Y * i1))
{
Graphics a = Graphics.FromImage(pictureBox1.Image);
a.FillRectangle(Brushes.Black, (X * (i - 1)), (Y * (i1 - 1)), X, Y);
this.Refresh();
//MessageBox.Show((X * (i - 1)).ToString() + ":" + (X * i).ToString() + " - " + (Y * (i1 - 1)).ToString() + ":" + (Y * i1).ToString());
break;
}
}
break;
}
}
}
}
}
Работает спасибо. Подскажите как изменить Сетку что бы ячеек больше было
ОтветитьУдалитьвот сетка 30 на 30 вот код изменил только это!!!
ОтветитьУдалитьfor (int i = 0; i < 39; i++)
{
g.DrawLine(p, new Point((pictureBox1.Width / 30 * (i + 1)), 0), new Point((pictureBox1.Width / 30 * (i + 1)), pictureBox1.Height));
g.DrawLine(p, new Point(0, (pictureBox1.Height / 30 * (i + 1))), new Point(pictureBox1.Width, (pictureBox1.Height / 30 * (i + 1))));