Я пытаюсь установить цвет некоторых кругов на основе значений данных внутри объекта.
У меня есть следующий класс:
Код: Выделить всё
public class Monster {
public int Stat1 {get; set;}
public int Stat2 {get; set;}
public int Stat3 {get; set;}
}
Код: Выделить всё
namespace Game
{
public partial class MonsterModel : Form
{
public PokedexModel(string pokemon, List
p)
{
InitializeComponent();
}
private async void PopulateData(string name)
{
Monster m = new Monster();
m = LoadStats(name);
}
}
}
Теперь у меня есть следующие три метки, используя Paint событие:
Код: Выделить всё
private void label1_Paint(object sender, PaintEventArgs e)
{
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(0, 0, 0, 0));
e.Graphics.FillEllipse(solidBrush, 0, 0, 30, 30);
}
Код: Выделить всё
private void label2_Paint(object sender, PaintEventArgs e)
{
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(0, 0, 0, 0));
e.Graphics.FillEllipse(solidBrush, 0, 0, 30, 30);
}
Код: Выделить всё
private void label1_Paint(object sender, PaintEventArgs e)
{
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(0, 0, 0, 0));
e.Graphics.FillEllipse(solidBrush, 0, 0, 30, 30);
}
Код: Выделить всё
private void label1_Paint(object sender, PaintEventArgs e)
{
if (m.Stat1 < 100)
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(255, 255, 0, 0));
e.Graphics.FillEllipse(solidBrush, 0, 0, 30, 30);
}
Вариант 1 – создать экземпляр m на более высоком уровне:
Код: Выделить всё
namespace Game
{
public partial class MonsterModel : Form
{
Monster m = new Monster();
public PokedexModel(string pokemon, List
p)
{
InitializeComponent();
}
private async void PopulateData(string name)
{
m = LoadStats(name);
}
}
}
Код: Выделить всё
private async void PopulateData(string name)
{
m = LoadStats(name);
if (m.Stat1 < 100) {
label1.Paint += (sender, e) =>
{
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(255, 255, 0, 0));
e.Graphics.FillEllipse(solidBrush, 0, 0, 30, 30);
};
label1.Invalidate();
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... s-on-label
Мобильная версия