Проблемы с изменением UserControls в Panel с кнопки внутри этого UserControl - PullRequest
0 голосов
/ 06 мая 2019

Редактировать: я понимаю, почему теперь мой код не работает, однако я не знаю, как я могу это исправить. Особенно учитывая, что у меня мало или нет понимания событий и делегатов. Может кто-нибудь придумать какой-нибудь простой способ, которым я могу переключаться между своими пользовательскими элементами управления внутри них, исключительно для того, чтобы в моем графическом интерфейсе было несколько «экранов»?

Я впервые создаю приложение с помощью Windows Forms.
У меня есть форма с панелью и некоторые пользовательские элементы управления для вставки в панель (две, которые я создал до сих пор, называется begin и problems).
Конструктор класса Form1 добавляет begin в Panel с помощью метода, который я создал, но теперь я хочу использовать Button внутри begin UserControl, который удаляет его из Panel и добавляет следующий UserControl с именем problem.

Я нашел очень мало полезных ресурсов о том, как создать графический интерфейс с несколькими экранами, и хотя я нашел несколько постов на форуме, я все перепробовал и не знаю, почему это не сработает.

Текущий код ничего не делает при нажатии кнопки (но я знаю, что кнопка работает с помощью других тестов с временной меткой).
Visual Studio не выявляет ошибок в моем коде.

Класс, связанный с моей основной (и единственной) формой:

public partial class Form1 : Form
{
    public void clearpanel() // clears panel of usercontrols
    {
        panel1.Controls.Clear();
    }
    public void addtopanel(UserControl x) // adds usercontrol
    {
        panel1.Controls.Add(x);
        x.Visible = true;
        x.Show();
    }
    public Form1()
    {
        InitializeComponent();
        var begin1 = new begin();
        addtopanel(begin1); // adds first screen of ui
    }
}

Кнопка в пользовательском контроле 'begin' (экран первого пользовательского интерфейса):

private void beginbutton1_Click(object sender, EventArgs e)
    {
        var problems1 = new problems();
        var form11 = new Form1();
        form11.clearpanel();
        form11.addtopanel(problems1);
    }

Любая помощь будет принята с благодарностью:)

...