Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > MainMenuStrip и Checked


Автор: asure 12.2.2009, 05:43
Есть MainMenuStrip следующего вида:
http://www.radikal.ru
Нужно сделать так, что бы при щелчке по одному из пунктов (По имени, По номиналу, По курсу) выделялся тот пункт, по которому щелкнули, а с остальных 2-ух пунктов автоматически снимались галочки. Сейчас я делаю это следующим образом:
Код

        public MainForm()
        {
            InitializeComponent();
            // Привязка событий
            SortByNameToolStripMenuItem.Click += new EventHandler(checkMenuItem);
            SortByNominalToolStripMenuItem.Click += new EventHandler(checkMenuItem);
            SortByKursStripMenuItem.Click += new EventHandler(checkMenuItem);
        }

        // При выборе сортировки
        private void checkMenuItem(object sender, EventArgs e)
        {
            foreach (ToolStripMenuItem tsmi in SortToolStripMenuItem.DropDownItems)
            {
                tsmi.Checked = false;
            }
            ((ToolStripMenuItem)sender).Checked = true;
        }

Меня интересует, можно ли это как-то автоматизировать? Т.е. например указать для всех нужных полей, какое-то общее значение значение и все на этом? Или такого в WinForms нету??

Автор: emmanuil 17.2.2009, 07:19
Там такого нет.
Лучше использовать событие CheckedChanged.
Если тебе нужно, чтобы при нажатии Checked менялся, то сделай свойство CheckOnClick = true.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)