none
Перерисовка сонтролов RRS feed

  • Вопрос

  • Перерисовка, понятное дело, не Сонтролов, а Контролов - сорри!
    Всем привет!
    WinForm/
    На форме с автоскролом рисую список панелей, до 500,
    каждая из которых содержит текстбокс, чекбокс и пикчебокс с картинкой.
    Затем нужно перерисовать на этой же форме такой же,
    но ограниченный список таких же панелей.
    Проблема - картина не меняется.
    Вроде все что нужно пересоздается. - 
    Как удалить предыдущие панели?
    • Изменено QazRdx 28 мая 2018 г. 11:24

Ответы

  • Сам нашел...
    Все просто - надо перерисовываемые контролы удалять из Controls,
    пересоздавать и потом перерисовывать.
    а я, не удаляя их из Controls, пытался из пересоздавать и перерисовывать.

    #region Using
    using System;
    using System.Drawing;
    using System.IO;
    using System.Windows.Forms;
    #endregion
    namespace PanelLst
    {	public partial class Form1: Form
    	{	public Form1()	{	InitializeComponent();	}
    		private void button1_Click	(	object o, EventArgs e)
    		{	if	(	panel != null	)	Controls.Remove (	panel );
    			panel		=	new Panel ();
    			Controls.Add	(	panel	);
    			panel.BorderStyle = BorderStyle.Fixed3D;
    			panel.Location	=	new Point	(	50, 50	);
    			panel.Size	=	new Size	(	100, 100	);
    			pchBox		=	new PictureBox	();
    			panel.Controls.Add		(	pchBox	);
    			pchBox.Image = Image.FromFile	(	"File.1.ico" ); 
    		}
    		private void button3_Click		(	object o, EventArgs e)
    		{	Controls.Remove			(	panel	);
    			panel		=	new Panel ();
    			Controls.Add	(	panel	);
    			panel.BorderStyle =	BorderStyle.Fixed3D;
    			panel.Location	=	new Point	(	100, 100	);
    			panel.Size	=	new Size	(	200, 200	);
    			pchBox		=	new PictureBox	();
    			panel.Controls.Add	(	pchBox	);
    			pchBox.Image	=	Image.FromFile	(	"File.2.ico");
    }	}	}



    • Изменено QazRdx 29 мая 2018 г. 5:03
    • Помечено в качестве ответа QazRdx 29 мая 2018 г. 5:03