Можете ли вы мне помочь с этим кодом? Я хочу научиться использовать Invalidate и Update, но я не уверен, как его использовать Этот код не работает. Я хочу установить новый текст, но он не «обновляется» и не пишет новую строку «Prova». БлагодаряC# - Invalidate() и Update()
namespace Invalidate
{
public partial class Form1 : Form
{
private String txt;
private PointF xy;
public Form1()
{
InitializeComponent();
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawString("This is the text that prints!",
this.Font, System.Drawing.Brushes.Azure, 0, 0);
}
private void Form1_Load(object sender, EventArgs e)
{
Panel pHText = new Panel();
pHText.Name = "ctrId";
pHText.Location = new Point(10, 10);
pHText.Size = new Size(200, 200);
pHText.BackColor = Color.White;
pHText.Paint += paintingUrCtr;
Controls.Add(pHText);
}
private void paintingUrCtr(object sender, PaintEventArgs e)
{
Font myFont = new Font("Arial", 14);
e.Graphics.DrawLine(new Pen(Color.Black), 0, 0, 10, 10);
e.Graphics.DrawString(this.txt, myFont, Brushes.Blue, 10, 10);
}
public void setText(String text, PointF pos)
{
this.txt = text;
this.xy = pos;
}
private void button_Click(object sender, EventArgs e)
{
setText("Prova", new PointF(100, 100));
this.Invalidate();
this.Update();
}
}
}
Пожалуйста, включите сообщение об ошибке, и объяснение ожидаемых против фактического поведения –
HI, этот код не записывает новую строку «Prova», когда я нажимаю на кнопки –
Вы недействительности форму, а не панели , Минимизируйте свою форму, затем восстановите ее, чтобы увидеть текст. – LarsTech