В моей форме1 я открываю форму2 и записываю результат формы2 в переменную DialogResult.После закрытия form2, в зависимости от результата form2 (DialogResult), я хочу заново показать свою форму 1.
Форма 1 отображается в течение доли секунды, а затем закрывается.
Переменная верначитать в form1 (проверено с помощью ящиков сообщений), но после «Show ()» форма снова закрывается.Разве форма не должна отображаться до тех пор, пока не будет вызвано «Close ()»?
Код запуска:
using BonnenPrinten;
using Ridder.Common.Script;
using System.Diagnostics;
using System.Windows.Forms;
public class RidderScript : CommandScript
{
public void Execute()
{
int nestingNaam = 0;
Process[] processes = Process.GetProcesses();
foreach (var item in processes)
{
string itemnaam = item.MainWindowTitle.ToString();
if (itemnaam.Contains("PN4000"))
int.TryParse(itemnaam.Substring(3, 5), out nestingNaam);
}
var form1 = new Form1(this, nestingNaam);
form1.ShowDialog();
}
}
Код в форме 1:
private void BtnStarten_Click(object sender, EventArgs e)
{
if (checkbox1.Checked)
DeleteTijdelijkeBonnen();
Hide();
string sqlQuery = SetSqlQuery();
if (checkbox2.Checked)
sqlQuery = SetSqlQuery(txtboxNestingnaam.Text);
Form form2= new Form2(_script, sqlQuery, bonTekeningCombineren.Checked);
form2.ShowDialog();
if (form2.DialogResult == DialogResult.OK) //form2 is closed, form1 should be closed
{
Close();
MessageBox.Show("Bonnenverwerking succesvol afgerond!", "Gereed", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else //form2 is closed, form1 should be shown;
{
Show();
}
}
Код выходитform2:
DialogResult = DialogResult.OK;
Close();
Когда DialogResult = OK , форма должна быть закрыта .
Когда DialogResult = Отмена , форма должна быть открыта .