2016-12-22 6 views
-1

Я пытаюсь сделать создатель графика (теория графов), но у меня возникла проблема, когда я пытаюсь нарисовать вершину (круг) на панели он не появляется.Visual C# - рисование круга на панели, но оно не отображается

Моя краска EventHandler является следующее:

private void panel1_Paint(object sender, PaintEventArgs e) 
{ 
    foreach (Vertex v in vertices) 
    { 
     e.Graphics.FillEllipse(brush_v, v.X - Vertex.Radius, v.Y - Vertex.Radius, 2 * Vertex.Radius, 2 * Vertex.Radius); 
     MessageBox.Show(String.Format("({0},{1}), r = {2})", v.X, v.Y, Vertex.Radius)); 

    } 
} 

Теперь окно сообщения появляется каждый раз, когда я нажимаю на панели, но круг не отображается.

Код, который вызывает panel1.Invalidate() заключается в следующем:

private void panel1_MouseClick(object sender, MouseEventArgs e) 
{ 
    switch (status) 
    { 
     case States.Null: 
      break; 
     case States.V_New: 
      vertices.Add(new Vertex(e.X, e.Y)); 
      panel1.Invalidate(); 
      break; 
     case States.E_New: 
      break; 
     case States.V_Remove: 
      break; 
     case States.E_Remove: 
      break; 
     default: 
      break; 
    } 
} 

И кисть создается в конструкторе Form1:

brush_v = new SolidBrush(Color.FromArgb(0x0F48B7)); 

Я использую VisualStudio Экспресс 2013.

+2

Никогда не помещайте MessageBox внутри вызова краски. – LarsTech

ответ

-1

Похоже, проблема заключалась в цвете кисти.

 Смежные вопросы

  • Нет связанных вопросов^_^