У меня проблема: мне нужно изменить размер родительского окна Form1, нажав кнопку в окне Form2. Основная проблема в том, что я не понимаю, как получить доступ к Form1. Я могу получить доступ к Form2 через (this.Size).
Я пытался пройти через this.Parent.Size и this.Owner.Weight, но выдает ошибку (NullReferenceException не обработано
Необработанное исключение типа «System.NullReferenceException» в WindowsFormsApplication8.1.exe )
У меня есть 3 формы:
Form1:
Код: Выделить всё
namespace WindowsFormsApplication8._1
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void выходToolStripMenuItem_Click_1(object sender, EventArgs e)
{
Application.Exit();
}
private void вводToolStripMenuItem_Click_1(object sender, EventArgs e)
{
SecondForm secondForm = new SecondForm();
secondForm.ShowDialog();
изменениеToolStripMenuItem.Visible = true;
}
private void изменениеToolStripMenuItem_Click_1(object sender, EventArgs e)
{
ThirdForm thirdForm = new ThirdForm();
thirdForm.ShowDialog();
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}
Код: Выделить всё
namespace WindowsFormsApplication8._1
{
public partial class SecondForm : Form
{
public SecondForm()
{
InitializeComponent();
}
private void SecondForm_Load(object sender, EventArgs e)
{
}
private void buttonOK_Click_1(object sender, EventArgs e)
{
ThirdForm fm2 = new ThirdForm();
fm2.textBox1.Text = this.textBox1.Text;
fm2.ShowDialog();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
}
}
Код: Выделить всё
{
public partial class ThirdForm : Form
{
public ThirdForm()
{
InitializeComponent();
}
private void ThirdForm_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
int a = int.Parse(textBox1.Text);
int pixels = 100;
if (radioButton1.Checked)
{
this.Owner.Size = new Size(this.Width + a, this.Height + a);
}
else if (radioButton2.Checked)
{
this.Size = new Size(this.Width - a, this.Height - a);
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... rm2-window