Перерисовать PictureBox с информацией о пользователеC#

Место общения программистов C#
Ответить
Anonymous
 Перерисовать PictureBox с информацией о пользователе

Сообщение Anonymous »

Когда я перерисовываю свои графические ящики (из listUC) на панели, я хочу нарисовать эллипс и строку на каждом графическом поле. Но в PictureBox ничего не было нарисовано.
Я хочу нарисовать строку, которая хранится в uc.Name;

Код: Выделить всё

foreach (UseCase uc in listUC)
{
ucNamePaint = uc.Name;
//Create UseCaseBox
PictureBox useCaseBox = new PictureBox();
useCaseBox.Name = uc.Index.ToString();
Graphics g = useCaseBox.CreateGraphics();
useCaseBox.Paint += new PaintEventHandler(OnPaint_picturebox);
}
Метод Onpaint:

Код: Выделить всё

private void OnPaint_picturebox(object sender, EventArgs e)
{
var pb = sender as PictureBox;
if (null != pb)
{
pb.BackColor = Color.Yellow;
Graphics g = pb.CreateGraphics();
Font drawFont = new Font("Arial", 10);
int stringWidth = (int)g.MeasureString(ucNamePaint, drawFont).Width;
int stringHeight = (int)g.MeasureString(ucNamePaint, drawFont).Height;

if (selectedUC.Count() != 0)
{
Rectangle ee = new Rectangle(0, 0, stringWidth + 10, stringHeight + 10);
using (Pen pen = new Pen(Color.Black, 2))
{
g.DrawEllipse(pen, ee);
}
}
else
{
Rectangle ee = new Rectangle(0, 0, stringWidth + 10, stringHeight + 10);
using (Pen pen = new Pen(Color.Gray, 2))
{
g.DrawEllipse(pen, ee);
}
}

StringFormat drawFormat = new StringFormat();
drawFormat.Alignment = StringAlignment.Center;

float emSize = pb.Height;
g.DrawString(ucNamePaint, new Font(FontFamily.GenericSansSerif, 10, FontStyle.Regular),
new SolidBrush(Color.Black), 7, 5);
}
}
Этот код окрашивает графический блок в желтый цвет, но больше ничего не закрашивается.
Пожалуйста, объясните мне, как это исправить!

Подробнее здесь: https://stackoverflow.com/questions/325 ... nformation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»