Выдержка кода из главной формы:
public partial class Main : Form
{
public NetComm.Host server;
public NetComm.Client client;
public Main()
{
InitializeComponent();
}
private void ToolStripMIConnect_Click(object sender, EventArgs e)
{
ClientPref formConnect = new ClientPref();
formConnect.Owner = this;
formConnect.ShowDialog();
}
}
Выдержка кода из создаваемой формы:
public partial class ClientPref : Form
{
Main formMain;
public ClientPref()
{
InitializeComponent();
formMain = this.Owner as Main;
}
private void btnConnect_Click(object sender, EventArgs e)
{
if (formMain != null) //следующий бок не выполняется т.к. formMain равен null
{
if (IsAddressValid(this.txtBoxIP.Text))
{
formMain.ClientStart(Convert.ToInt32(this.txtBoxPort.Text), this.txtBoxIP.Text, "Соперник");
}
else toolTipClient.Show("Введен некорректный IP-адрес.", this.txtBoxIP);
}
}
Почему formMain равен null или как в итоге обратиться к методу ClientStart формы Main?
Ответ
Простой вариант - переписать вот так, сделать поле вычислимым свойством:
Main FormMain { get { return this.Owner as Main } };
Тогда в btnConnect_Click всё должно работать.
Комментариев нет:
Отправить комментарий