Редактировать: я понимаю, почему теперь мой код не работает, однако я не знаю, как я могу это исправить. Особенно учитывая, что у меня мало или нет понимания событий и делегатов. Может кто-нибудь придумать какой-нибудь простой способ, которым я могу переключаться между своими пользовательскими элементами управления внутри них, исключительно для того, чтобы в моем графическом интерфейсе было несколько «экранов»?
Я впервые создаю приложение с помощью 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);
}
Любая помощь будет принята с благодарностью:)