예제 #1
0
        /// <summary>
        /// Добавляет проект в список создаваемых проектов.
        /// </summary>
        /// <param name="project">Создаваемый проект.</param>
        private void AddProject(IProjectMenuItem project)
        {
            if (project == null)
                throw new ArgumentNullException("Добавляемый проект не может быть неопределенным");
            if (!(project is UserControl))
                throw new ArgumentException("Проект должен являться пользовательским элементом");

            _projects.Add(project);

            Button btn = new Button();
            btn.Text = project.ProjectName;
            btn.ForeColor = Color.Black;
            btn.BackColor = Color.WhiteSmoke;
            btn.UseVisualStyleBackColor = true;
            btn.Dock = DockStyle.Top;
            btn.Height = GetItemHeight();
            btn.Tag = project;

            btn.Click += btn_Click;
            itemsHolder.Controls.Add(btn);
            btn.TabIndex = createBtn.TabIndex + _projects.Count;
            btn.BringToFront();

            if (_selected == null)
                SetSelected(project);
        }
예제 #2
0
        /// <summary>
        /// Устанавливает элемент в качестве выбранного.
        /// </summary>
        /// <param name="item">Устанавливаемый элемент.</param>
        private void SetSelected(IProjectMenuItem item)
        {
            if (item == _selected) return;

            if(_selected != null)
            {
                infoHolder.Controls.RemoveAt(0);
            }
            _selected = item;
            if(_selected != null)
            {
                infoHolder.Controls.Add(item as UserControl);
                (item as UserControl).Dock = DockStyle.Fill;
            }
        }