Как избавиться от повторов при клонировании экземпляров формы? - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Всем здравствуйте. Есть главная форма со стандартным меню из трёх элементов и форма, которую нужно клонировать. При щелчке на элементе меню 1 создаётся новая копия формы-клона с отображением числа 1 в её заголовке. При щелчке на элементе меню 2 создаётся новая копия формы-клона с отображением числа 2 в её заголовке. При щелчке на элементе меню 3 создаётся новая копия формы-клона с отображением числа 3 в её заголовке.
Всё работает, но как избежать следующего: Если я повторно щёлкну по элементу меню 1, то появляется ещё одна копия формы-клона с отображением числа 1 в её заголовке (а такая уже есть). Хотелось бы чтобы при повторном щелчке по элементу меню если нужный экземпляр уже создан просто вывести его на передний план.

Решение задачи: «Как избавиться от повторов при клонировании экземпляров формы?»

textual
Листинг программы
Public Class frmMain
 
    Private cloneForms() As frmClone = {Nothing, Nothing, Nothing}
 
    Private Sub mnuVar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuVar1.Click
        ShowCloneForm(1)
    End Sub
 
    Private Sub mnuVar2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuVar2.Click
        ShowCloneForm(2)
    End Sub
 
    Private Sub mnuVar3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuVar3.Click
        ShowCloneForm(3)
    End Sub
 
    Private Sub ShowCloneForm(num As Integer)
        If cloneForms(num-1) IsNothing Then
            Dim frmClone As New frmClone()
            frmClone.Text = num.ToString()
            frmClone.Show()
            cloneForms(num-1) = frmClone
        Else
            cloneForms(num-1).Activate()
        End If
    End Sub
 
End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы