private void ButtonInfoRemoved(ButtonInfoCollection sender, ButtonInfo buttonInfo) { var index = FindButton(buttonInfo); if (index < 0) // кнопка не найдена throw new ApplicationException( "Кнопка '" + buttonInfo.Text + "' не может быть удалена, так как она отсуствует в списке."); var control = Controls[index]; control.Click -= SmilesToolbarClick; _toolTip.SetToolTip(control, ((ButtonInfo)control.Tag).Hint); Controls.RemoveAt(index); if (sender != null) UpdateButtons(); }
//private ArrayList _buttons = new ArrayList(30); private void ButtonInfoAdded(ButtonInfoCollection sender, ButtonInfo buttonInfo) { var button = buttonInfo.Image == null ? (Control)new Label { Text = buttonInfo.Text, AutoSize = true } : new PictureBox { SizeMode = PictureBoxSizeMode.AutoSize, Image = buttonInfo.Image }; if (!IsSpecialButton(buttonInfo)) { button.Click += SmilesToolbarClick; button.Cursor = Cursors.Hand; _toolTip.SetToolTip(button, buttonInfo.Hint ?? buttonInfo.Text); } button.Tag = buttonInfo; Controls.Add(button); if (sender != null) UpdateButtons(); }
private void ButtonInfoChanged(ButtonInfoCollection sender, ButtonInfo oldButtonInfo, ButtonInfo newButtonInfo) { ButtonInfoRemoved(null, oldButtonInfo); ButtonInfoAdded(null, newButtonInfo); UpdateButtons(); }