Это, вероятно, основной вопрос, но я не могу найти ответы, потому что термины являются общими.
Я создаю приложение WinForm.Его цель - настроить память в определенном чипе.Я думаю, что лучший способ организовать приложение - иметь пользовательский элемент управления для каждого типа микросхемы, полученный из общего родительского класса.Думайте о детях как о «iphone», «android» и «blackberry», происходящих из родительского класса «phone».
VS2017 В Designer есть панель, где я хочу, чтобы элемент управления был.При запуске я генерирую объект базового класса и добавляю его на панель.Когда я нажимаю кнопку, старый объект удаляется и заменяется новым.У каждого класса есть только один элемент управления, метка с отличительным текстом.
Проблема в том, что после нажатия кнопки я вижу оба текста.Коллекция Controls панели имеет только один элемент, но я вижу текст из обоих объектов.Я пытался обновить, обновить и сделать недействительными с одинаковыми результатами.
Что мне нужно сделать, чтобы старый текст "ушёл", поэтому единственное, что я вижу, это последний объект?
private ChipMemBase ChipMemControl = new ChipMemBase();
public Form1()
{
InitializeComponent();
//tbFeedback.Text = string.Format(fmtString, 0, 1, 2, 3, 4, 5);
cbChipName.SelectedIndex = 0;
tbVersion.Text = Version;
OriginalWindowColor = tbFeedback.BackColor;
ShowChipMemControl();
PrintToFeedback(Version);
}
private void ShowChipMemControl()
{
var ctl = pnlChipMem.GetChildAtPoint(new Point(5,5));
if (null != ctl)
{
if (ctl != ChipMemControl)
{
pnlChipMem.Controls.Remove(ctl);
ctl.Dispose();
pnlChipMem.Update();
Refresh();
}
}
if (null != ChipMemControl)
{
pnlChipMem.Controls.Add(ChipMemControl);
}
}
private void btnMakeChipMemory_Click(object sender, EventArgs e)
{
ChipMemControl = new ChipMemGen2();
ShowChipMemControl();
}
Снимки экрана до и после нажатия кнопки "Создать"