Я пишу немного кода, который использует поведение AfterSelect из TreeView, чтобы затем открыть форму, используя выбранное имя узла и тег. Он работает отлично, однако недостаток заключается в том, что всякий раз, когда форма закрывается с помощью this.Close();
или this.Hide();
или даже с помощью встроенной кнопки закрытия Windows, я не могу открыть ту же форму, не открыв сначала другую.
Я пытался использовать различные методы поведения, такие как NodeMouseClick
и NodeMouseDoubleClick
, это все еще приводит к ошибкам объекта, поэтому я предположил, что это не тот метод, который мне нужен
Вот мой код в виде дерева:
public void TreeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
string formName = treeView1.SelectedNode.Name.ToString();
string namespaceName = treeView1.SelectedNode.Tag.ToString();
var type = Type.GetType(namespaceName + "." + formName);
var newForm = Activator.CreateInstance(type) as Form;
if (newForm != null)
{
newForm.ShowDialog();
}
}
А вот мой код в форме:
private void BtnSave_Click(object sender, EventArgs e)
{
AccessDBConnection.sql = "INSERT INTO Users (FirstName, Surname, Username) values(@FirstName, @Surname, @Username)";
AccessDBConnection.cmd.Parameters.Clear();
AccessDBConnection.cmd.CommandType = CommandType.Text;
AccessDBConnection.cmd.CommandText = AccessDBConnection.sql;
AccessDBConnection.cmd.Parameters.AddWithValue("@FirstName", firstNameBox.Text);
AccessDBConnection.cmd.Parameters.AddWithValue("@Surname", surnameBox.Text);
AccessDBConnection.cmd.Parameters.AddWithValue("@Username", usernameBox.Text);
AccessDBConnection.openConnection();
AccessDBConnection.cmd.ExecuteNonQuery();
AccessDBConnection.closedConnection();
MyMessageBox.ShowMessage("User Created.", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Hand);
//this.Hide();
//this.Close();
//Commented out as using Windows Close Button for testing.
}
Я должен иметь возможность открыть форму Add User
, а затем закончить детали, нажать отправить / закрыть, а затем при необходимости снова открыть ту же форму, однако я не могу повторно открыть эту форму, пока не открою другую первую такие как User Maintenance
.
Нет сообщений об ошибках.