Пример #1
0
    public static void colorComboSelectedIndexChanged(object sender, ref int LastColorIndex,
                                                      ChangeCommitted changed)
    {
        ComboBox cbox = (ComboBox)sender;

        if (cbox.SelectedIndex == cbox.Items.Count - 1)
        {
            try
            {
                int selIndex;
                using (ColorDialog dlgSelectColor = new ColorDialog())
                {
                    dlgSelectColor.Color = DrawUtils.ColorFromIndex(LastColorIndex);
                    selIndex             = LastColorIndex;
                    if (dlgSelectColor.ShowDialog() == DialogResult.OK)
                    {
                        Color selColor = dlgSelectColor.Color;
                        if (!DrawUtils.FindColor(selColor))
                        {
                            DrawUtils.AddCustomColor(selColor);
                            dlgSelectColor.CustomColors = DrawUtils.GetCustomColors();
                            cbox.Items.Insert(cbox.Items.Count - 1, "Мой цвет");
                            cbox.SelectedIndex = cbox.Items.Count - 2;
                        }
                        else
                        {
                            cbox.SelectedIndex = DrawUtils.ColorToIndex(selColor);
                        }
                        if (changed != null)
                        {
                            changed(sender, new EventArgs());
                        }
                    }
                    else
                    {
                        cbox.SelectedIndex = selIndex;
                    }
                }
            }
            catch
            { }
        }
        else
        {
            LastColorIndex = cbox.SelectedIndex;
            cbox.Refresh();
        }
    }
 private void versionControl_CommitCheckin(object sender, CommitCheckinEventArgs e)
 {
     ChangeCommitted?.Invoke(this, e);
 }