Dynamiczne menu z przyciskami

0

Cześć,
W jaki sposób mogę zrobić dynamiczne menu które będzie tworzyło w zależności od ilości jaką program potrzebuje, przyciski którymi będę mógł nawigować pomiędzy pytaniami w programie (piszę program do obsługi testów).
Chciałbym żeby to mniej więcej wyglądało tak: screenshot-20170410234324.png
Jakiej formatki użyć? Myślałem nad FlowLayoutPanel, ale nie wiem czy to jest najlepsza opcja.
Ktoś coś poradzi? Pozdrawiam...

1

Zrób sobie faktorkę i wykorzystuj ją w pętli, w zależności od tego ile będzie pytań:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Soft
{
    static class ButtonFactory
    {
        public static Button GetButton(string text)
        {
            var button = new Button();
            button.Text = text;
            button.Width = 45;
            button.Height = button.Width;
            return button;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var form = new Form();
            var panel = new FlowLayoutPanel();
            panel.AutoScroll = true;
            panel.FlowDirection = FlowDirection.LeftToRight;
            panel.WrapContents = false;
            panel.Dock = DockStyle.Fill;
            form.Controls.Add(panel);

            var count = 10;
            for(int i = 0; i < count; i++)
            {
                panel.Controls.Add(ButtonFactory.GetButton(string.Format("{0}", i + 1)));
            }
            form.ShowDialog();
        }
    }
}
0

Dziękuje bardzo za pomoc, o to mi własnie chodziło, pozdrawiam! :)

0

Jak wywołać teraz kliknięcie danego przycisku w tym panelu? Bo mam z tym lekki problem, próbowałem w taki sposób:

panel.Click+=new MouseEventHandler(button_click);

Ale to nie tak bo nie działa :D

0

Jak wywołać teraz kliknięcie danego przycisku w tym panelu?

Co to znaczy „wywołać kliknięcie”?

Zasymulować z kodu kliknięcie przycisku?

button.PerformClick();

Czy może chcesz po prostu oprogramować przycisk? To rób to dla przycisku, a nie dla panelu.
Panel jest nieistotny.

button.Click += ...
0

Chodzi o to ze mam wygenerowane te przyciski tak jak tam wyżej jest podane, i chce je wyciągnąć jakoś z tego flowlayoutpanelu żeby po kliknięciu w niego wywołała sie odpowiednia metoda. Jednak nie mam pomysłu na to jak sie do tego zabrać. Przecież tak normalnie nie wywołam button.Click :)

@Edit: już wiem, wystarczyło podczas tworzenia buttonów dodać event handler do każdego :)
Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1