У меня есть следующий (уточненный) код:
Form1
public partial class Form1 : Form
{
GetIP getIP;
string deviceIP = "";
public Form1()
{
InitializeComponent();
if (deviceIP == "")
{
getIP = new GetIP();
var result = getIP.ShowDialog();
if (result == DialogResult.OK)
{
string ip = getIP.IPAddress;
deviceIP = ip;
}
}
}
private void Button_Clicked(object sender, EventArgs e)
{
form2 = new Form2();
form2.ShowDialog();
}
}
GetIP
public partial class GetIP : Form
{
public string IPAddress { get; set; }
public GetIP()
{
InitializeComponent();
}
private void btnConnect_Click(object sender, EventArgs e)
{
IPAddress = txtIPAddress.Text;
DialogResult = DialogResult.OK;
Close();
}
}
Form2
public partial class Form2 : Form
{
Form1 form1 = new Form1(); // oops...this might be it?
public Form2(string deviceData)
{
InitializeComponent();
// Force CRLF (\r\n) on all newline instances
deviceData = deviceData.Replace("\r\n", "\n");
deviceData = deviceData.Replace("\r", "\n");
deviceData = deviceData.Replace("\n", "\r\n");
txtdeviceData.Text = deviceData;
}
private void btnClose_Click(object sender, EventArgs e)
{
Close();
}
}
Моя проблема заключается в том, что всякий раз, когда Form2
пытается открыть, Form1
, кажется, обновляется.Это приводит к повторному запуску GetIP
(что также означает, что deviceIP
был повторно инициализирован обратно в "").Form2
не открывается до тех пор, пока не будет завершено GetIP
.
Проверка на deviceIP == ""
была моей попыткой решения проблемы, но, похоже, инициализация переменной также выполняется повторно, что сводит на нет мойcheck.
Есть ли способ предотвратить обновление Form1
или, по крайней мере, способ предотвратить повторный запуск GetIP
?
Обновление
Хм, я только что заметил, что у меня есть то, что кажется остатком строки кода, которая создает Form1
экземпляр ...