Ejemplo n.º 1
0
        public void Load(string[] letterGroups, string selected = null)
        {
            Items.Clear();

            for (int i = 0; i < letterGroups.Length; i++)
            {
                ToolStripStatusLabel label = new ToolStripStatusLabel(letterGroups[i]);
                if (selected?.Equals(letterGroups[i]) ?? false)
                {
                    label.Font = new Font(this.Font, FontStyle.Bold);
                }
                label.Spring    = (i == 0 || i == letterGroups.Length - 1);
                label.IsLink    = true;
                label.TextAlign =
                    (i == 0) ? ContentAlignment.MiddleRight :
                    (i == letterGroups.Length - 1) ? ContentAlignment.MiddleLeft :
                    ContentAlignment.MiddleCenter;

                label.Click += delegate(object sender, EventArgs e)
                {
                    label.Font = new Font(this.Font, FontStyle.Bold);
                    LetterClicked?.Invoke(label, new EventArgs());
                    IsFiltered = true;
                };

                Items.Add(label);
            }

            if (IsFiltered)
            {
                var showAllLabel = new ToolStripStatusLabel("show all");
                showAllLabel.Spring    = true;
                showAllLabel.TextAlign = ContentAlignment.MiddleLeft;
                showAllLabel.IsLink    = true;
                showAllLabel.Click    += delegate(object sender, EventArgs e)
                {
                    IsFiltered = false;
                    ShowAllClicked?.Invoke(showAllLabel, e);
                };

                var lastLetter = Items[letterGroups.Length - 1] as ToolStripStatusLabel;
                lastLetter.Spring    = false;
                lastLetter.TextAlign = ContentAlignment.MiddleCenter;

                Items.Add(showAllLabel);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 ///
 /// </summary>
 public void LetterClick()
 {
     LetterClicked?.Invoke();
 }