Я пытаюсь динамически добавить набор строк на вкладку, однако после загрузки они перестают правильно отображаться. В конечном итоге я хотел бы иметь до нескольких сотен.
Первоначально он будет выглядеть как первая версия, но после прокрутки строки будут выглядеть как вторая версия.
Чтобы добавить эти строки, я добавил событие Paint на вкладку в конструкторе как:
this.TabTree.Paint += new System.Windows.Forms.PaintEventHandler(this.PaintLines);
И создал метод
private void PaintLines(object sender, PaintEventArgs e)
{
System.Drawing.Graphics g = e.Graphics;
int linesLen = Lines.Count();
for (int i = 0; i < linesLen; i++)
{
g.DrawLine(Pens.Red, Lines[i].X1, Lines[i].Y1, Lines[i].X2, Lines[i].Y2);
}
}
Это основано на рекомендациях здесь:
https://www.experts-exchange.com/questions/25024010/How-do-I-draw-a-line-on-the-page-of-a-tab-control.html
Я думаю, что мне не хватает кое-что о том, как работают события Paint. Сначала я попытался пройти через главное событие Paint для формы, но не смог отобразить строки на вкладке. Я также хотел бы иметь возможность удалять и обновлять строки, если это возможно.
Если вы можете предоставить какую-либо информацию о том, как лучше динамически реализовать рисование линий на вкладке, или об альтернативном подходе, я был бы очень благодарен. Может быть, способ очистить линии и перерисовать, когда происходит событие прокрутки?
Спасибо.