WinForms открыть/скрыть окна
Создал библиотеку классов C#, добавил два окна WinForms: Form1 и Form2
Запускается сторонней программой таким образом
namespace NewTestLibrary2
{
public class Class1
{
static Form1 mainform1;
static Form2 mainform2;
static Thread threadmainform;
public Form2 Form_2;
[DllExport]
public static void Init()
{
if (mainform1 == null)
{
threadmainform = new Thread(NewForm1);
threadmainform.Start();
}
if (mainform2 == null)
{
threadmainform = new Thread(NewForm2);
threadmainform.Start();
}
}
[DllExport]
public static void DeInit(int reason)
{
if (reason == 3 || reason == 5) return;
if (mainform2 != null) { mainform2.Close(); Thread.Sleep(100); }
if (mainform1 != null) { mainform1.Close(); Thread.Sleep(1000); }
if (threadmainform != null) threadmainform.Join();
mainform1 = null;
mainform2 = null;
threadmainform = null;
}
private static void NewForm1()
{ mainform1 = new Form1(); mainform1.ShowDialog(); }
private static void NewForm2()
{ mainform2 = new Form2(); mainform2.ShowDialog(); }
}
}
На окне Form1 есть кнопка.
Как сделать так чтобы при нажатии на кнопку менять видимость Form2?
Нужен конкретный пример. (Я только начал это дело изучать)
код Form1
namespace NewTestLibrary2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//---
}
}
}
Ответы (2 шт):
Автор решения: Игорь
→ Ссылка
За показ и скрытие формы отвечают методы Show и Hide.
Form1 form1 = new Form1();
form1.Show();
form1.Hide();
Автор решения: Makar X
→ Ссылка
Решил вопрос так
public bool Form2Visible
{
get => form2.Visible;
set => form2.Visible = value;
}
private void label1_MouseDown(object sender, MouseEventArgs e)
{
if (form2.Visible == true) { form2.Visible = false; label1.Text = "Show"; }
else { form2.Visible = true; label1.Text = "Hide"; }
}