Я пишу C# Windows Forms App Online Store GUI, который взаимодействует с базой данных. Одна из вещей, которые я должен сделать, это обращаться с клиентами, которые уже находятся в базе данных. В форме главного меню они нажимают кнопку «Постоянный клиент» и вводят свой адрес электронной почты и пароль. Затем введенные данные сверяются с клиентами, хранящимися в базе данных, и, если они проверены, их пользовательская информация заполняется в текстовые поля (Имя, данные кредитной карты, CVS и т. Д. c ...), и форма заказа становится видимой. , У меня нет проблем там. Проблема, с которой я сталкиваюсь, заключается в том, что если возвращающийся клиент успешно входит в систему, а затем отменяет ее обратно в главное меню, следующий человек, который нажимает кнопку «Возвращающийся клиент», поднимает форму с информацией о первом пользователе, уже заполненной и видимой. , поскольку оба метода this.Close()
и this.DialogResult = DialogResult.Cancel
оба только скрывают форму, а не закрывают и освобождают ее. Но затем, если я использую this.Dispose()
в Форме возврата клиента, чтобы освободить ее, ее нельзя будет снова открыть.
Мой вопрос: есть ли простой способ справиться с этим? Я самоучка в C#, так что прости мою неопытность. Спасибо за любую помощь, которую вы можете оказать.
За запрос см. Код формы 1 (форма главного меню) ниже:
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Database_Interface_Project
{
public partial class Form1 : Form
{
// Removed SqlConnectionString for security purposes.
public SqlConnection cnn = new SqlConnection(connectionString);
// Main Menu Form
public Form1()
{
InitializeComponent();
}
// New Customer Form
Form2 newCustomer = new Form2();
private void newCusButt_Click(object sender, EventArgs e)
{
newCustomer.ShowDialog();
}
// Returning Customer Form
ReturningCustomer returningCustomer = new ReturningCustomer();
private void RetCusButt_Click(object sender, EventArgs e)
{
returningCustomer.ShowDialog();
}
private void exitButt_Click(object sender, EventArgs e)
{
this.Close();
}
// Manager Menu Form
Manager managerMenu = new Manager();
private void managerButt_Click(object sender, EventArgs e)
{
managerMenu.ShowDialog();
}
}
}```