none
Как с одной формы задать настройки другой? RRS feed

  • Вопрос

  • Смотрите. У меня есть основная форма(Form1). На ней компонент: ToolStrip1 и Button1. При нажатии Buuto1 открывается Form2 на которой есть checkBox1. Нужно чтобы когда checkBox1.checked = true, то на Form1 ToolStrip1.Visibel = true, а когда checkBox1.checked = false, то на Form1 ToolStrip1.Visibel = false.
    • Перемещено I.Vorontsov 25 декабря 2009 г. 8:21 (От:Visual C#)
    • Перемещено SachinW 1 октября 2010 г. 22:14 MSDN Forums Consolidation (От:Начинающие разработчики)
    18 ноября 2009 г. 0:26

Ответы

  • Самый очевидный способ - определить в классе Form2(в котором CheckBox) событие и подписать на него класс Form1

    //Form2

        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            public delegate void SampleEventHandler(object sender, EventArgs e);
    
            public event SampleEventHandler SampleEvent;
    
            private void checkBox1_CheckStateChanged(object sender, EventArgs e)
            {
                if (SampleEvent != null)
                {
                    SampleEvent(this, null);
                }
            }
        }

    //Form1
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 frm = new Form2();
                frm.SampleEvent += new Form2.SampleEventHandler(frm_SampleEvent);
                frm.Show();
            }
    
            void frm_SampleEvent(object sender, EventArgs e)
            {
                toolStrip1.Visible = !toolStrip1.Visible;
            }
        }
    • Предложено в качестве ответа I.Vorontsov 18 ноября 2009 г. 14:36
    • Помечено в качестве ответа Серый Науменко 19 ноября 2009 г. 13:23
    18 ноября 2009 г. 6:04

Все ответы

  • Самый очевидный способ - определить в классе Form2(в котором CheckBox) событие и подписать на него класс Form1

    //Form2

        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            public delegate void SampleEventHandler(object sender, EventArgs e);
    
            public event SampleEventHandler SampleEvent;
    
            private void checkBox1_CheckStateChanged(object sender, EventArgs e)
            {
                if (SampleEvent != null)
                {
                    SampleEvent(this, null);
                }
            }
        }

    //Form1
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 frm = new Form2();
                frm.SampleEvent += new Form2.SampleEventHandler(frm_SampleEvent);
                frm.Show();
            }
    
            void frm_SampleEvent(object sender, EventArgs e)
            {
                toolStrip1.Visible = !toolStrip1.Visible;
            }
        }
    • Предложено в качестве ответа I.Vorontsov 18 ноября 2009 г. 14:36
    • Помечено в качестве ответа Серый Науменко 19 ноября 2009 г. 13:23
    18 ноября 2009 г. 6:04
  • Спосибо! Как только буду дома сразу сяду и испытаю!

    19 ноября 2009 г. 13:24