Я делаю клиента, который подключается к серверу и отправляет и получает данные. Но когда функция draw вызывается из принимающего потока, она ничего не рисует. Хотя, если я позвоню с моей кнопки, она прорисовывается правильно. Может кто-нибудь помочь мне, пожалуйста?
Примечание. Работает с кнопки, когда я передаю параметры, а не с другого потока, получающего сообщения.
x
- это х, где рисовать
y
это у того, где рисовать
b
блок для рисования
Метод GetColor()
работает - я протестировал его, и он правильно рисует с кнопки, но не из моего потока получения.
public void Draw(int x, int y, int b)
{
MessageBox.Show(x + " " + y + " " + b);
Graphics g = this.CreateGraphics();
Pen pen = new Pen(getcolor(b), 1);
g.FillRectangle(pen.Brush, x, y, 1, 1);
}
Я пытался вызвать, но я думаю, что я испортил или что-то, если кто-то может сказать мне, что не так с этим кодом, спасибо
public void Draw (int x, int y, int b)
{
if (this.InvokeRequired)
{
// Reinvoke the same method if necessary
BeginInvoke(new MethodInvoker(delegate() { Draw(x, y, b); }));
}
else
{
MessageBox.Show(x + " " + y + " " + b);
Graphics g = this.CreateGraphics();
Pen pen = new Pen(getcolor(b), 1);
g.FillRectangle(pen.Brush, x, y, 1, 1);
}}
Спасибо