C # Как оформить панель для последующего использования .. (Экран настроек) - PullRequest
3 голосов
/ 30 января 2010

Итак, я делаю экран настроек в тот момент, когда у меня будет дерево слева, а затем панель справа. Отображаемая на экране панель будет зависеть от того, какой элемент дерева выбран.

Просто интересно, как мне разработать эти панели и сохранить тему для последующего использования (время выполнения).

Нужно ли мне идти, рисовать их и т. Д., Просматривать код, затем копировать в класс или что-то еще?

Извините, если мой вопрос немного расплывчат, но я не совсем уверен, чего хочу: -O

РЕДАКТИРОВАТЬ Да, я хочу создать экран настроек, подобный тому, который был найден в Visual Studio. Дерево слева (как в проводнике), а затем новый макет формы для каждого узла дерева.

1 Ответ

2 голосов
/ 30 января 2010

Вы захотите создать UserControls вместо Panel, это легко редактировать в дизайнере. Прикрепите древовидное представление слева и используйте такой код для выбора активного пользовательского элемента управления:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        treeView1.AfterSelect += new TreeViewEventHandler(treeView1_AfterSelect);
    }
    private UserControl mActivePanel;

    void treeView1_AfterSelect(object sender, TreeViewEventArgs e) {
        UserControl newPanel = null;
        switch (e.Node.Index) {
            case 0: newPanel = new UserControl1(); break;
            case 1: newPanel = new UserControl2(); break;
            // etc...
        }
        if (newPanel != null) {
            if (mActivePanel != null) {
                mActivePanel.Dispose();
                this.Controls.Remove(mActivePanel);
            }
            newPanel.Dock = DockStyle.Fill;
            this.Controls.Add(newPanel);
            this.Controls.SetChildIndex(newPanel, 0);
            mActivePanel = newPanel;
        }
    }
}
...