Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
1

Выбрать определенный компонент формы через combobox

24.03.2015, 12:47. Показов 1258. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый всем день! Подскажите пожалуйста, можно ли сделать так, что при выборе какого-либо значения в comboboxe, менялись настройки того объекта (например, выбран button и она становится невидимой)? Не используя при этом условия if или switch, много значений в combobxe.

Добавлено через 2 часа 55 минут
уточняю, компоненты будут одинаковы, либо button илиtextbox.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2015, 12:47
Ответы с готовыми решениями:

Нестыковка с перетаскиванием формы через компонент Panel
Использую: private Int32 tmpX; private Int32 tmpY; private bool MV...

Можно ли через ComboBox открывать формы
Подскажите пожалуйста, можно ли через Combobox открывать формы. Я знаю как только через кнопки, но...

Выбрать фон формы через combobox
Нужна программа, чтобы из меня комбокс выбирать фон изображения. пока сделала вот так, но выдает...

Как автоматически выбрать определенный пункт в ComboBox?
есть в программе combobox у него 5 пунктов выбора, как сделать так чтобы когда запускаешь программу...

10
191 / 180 / 114
Регистрация: 28.07.2013
Сообщений: 606
24.03.2015, 13:09 2
тут на скорую руку:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void MyControls(Control container)
{
    //получаем список всех контролов на форме
    foreach(Control contrrol in container.Controls){
        comboBox1.Items.Add(contrrol.Name);
    }
}
void Form1Load(object sender, EventArgs e)
{
    MyControls(this);
}
void ComboBox1SelectedIndexChanged(object sender, EventArgs e)
{
    this.Controls[comboBox1.Text].Visible = false;
}
думаю доработать под себя будет не сложно
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
24.03.2015, 13:36  [ТС] 3
СвободныйНик, только по именам можно привязать? больше никак?
0
191 / 180 / 114
Регистрация: 28.07.2013
Сообщений: 606
24.03.2015, 13:41 4
Цитата Сообщение от blackstar Посмотреть сообщение
больше никак?
а как надо?
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
24.03.2015, 13:53  [ТС] 5
СвободныйНик, у меня на форме несколько элементов chart. В combobxe написано только их Заглавие (т.е. название графика), а не имя компонента. мне нужно сделать чтобы включалась 3d модель того, кого я выбрал в charte)
0
191 / 180 / 114
Регистрация: 28.07.2013
Сообщений: 606
24.03.2015, 14:02 6
кто мешает присвоить им свои Имена = Заглавие? На мой взгляд так будет проще.
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
24.03.2015, 14:21  [ТС] 7
СвободныйНик, компоненты называть на русском языке? как-то не хорошо будет)
0
191 / 180 / 114
Регистрация: 28.07.2013
Сообщений: 606
24.03.2015, 19:59 8
Цитата Сообщение от blackstar Посмотреть сообщение
компоненты называть на русском языке? как-то не хорошо будет)
согласен - не хорошо
но можно названия в массиве сохранить
пример с кнопками:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
string[,] buttonliste= {{"кнопка1","button1"},{"кнопка2","button2"},{"кнопка3","button3"}};
 
private void MyControls(Control container)
{
    foreach(Control contrrol in container.Controls){
        if(contrrol is Button){
            for(int i = 0;i<buttonliste.Length/2;i++){
                if(contrrol.Name == buttonliste[i,1]){
                    comboBox1.Items.Add(buttonliste[i,0]);
                }
            }                   
        }
    }
}
void Form1Load(object sender, EventArgs e)
{
    MyControls(this);
}
void ComboBox1SelectedIndexChanged(object sender, EventArgs e)
{
    for(int i = 0;i<buttonliste.Length/2;i++){              
        if(comboBox1.Text == buttonliste[i,0]){
            this.Controls[buttonliste[i,1]].Visible = false;
        }
    }           
}
Добавлено через 5 часов 18 минут
blackstar, какой контрол то используешь?
Есть ли у него такое св-во - Контрол.Заглавие, тогда проще будет
1
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
25.03.2015, 21:22  [ТС] 9
СвободныйНик, я chart использую) можно проще сделать?)
0
191 / 180 / 114
Регистрация: 28.07.2013
Сообщений: 606
25.03.2015, 22:29 10
Цитата Сообщение от blackstar Посмотреть сообщение
я chart использую) можно проще сделать?)
К сожалению у меня контрола Chart нет (пишу в SharpDevelop)
0
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,273
26.03.2015, 12:42 11
Цитата Сообщение от blackstar Посмотреть сообщение
сделать так, что при выборе какого-либо значения в comboboxe, менялись настройки того объекта
Можно так попробовать
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
    enum Operation { Hide, Show, Clear };
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        List<OperationWithControl> operationWithControl = new List<OperationWithControl>();
        private void Form1_Load(object sender, EventArgs e)
        {
            operationWithControl.Add(new OperationWithControl("скрыть  Button1", button1, Operation.Hide));
            operationWithControl.Add(new OperationWithControl("показать Button1", button1, Operation.Show));
            operationWithControl.Add(new OperationWithControl("скрыть  label1 ", label1, Operation.Hide));
            operationWithControl.Add(new OperationWithControl("показать label1", label1, Operation.Show));
 
            //заполняем комбобокс  строками: "скрыть  Button1", "показать Button1" и т.д.
            comboBox1.DataSource = operationWithControl.Select(o => o.Info).ToArray();
        }
                       
         //меняем свойство контрола
         private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
         {
             operationWithControl[comboBox1.SelectedIndex].StartOperation();
         }
 
    }
 
    class OperationWithControl
    {
       public string Info { get; private set; }
       public Control Ctrl { get; private set; }
       public Operation Operation { get; private set; }
        
       public OperationWithControl(string info, Control ctrl, Operation operation)
        {
            Info = info;
            Ctrl = ctrl;
            Operation = operation;
        }
 
       public void StartOperation()
       {
           switch (Operation)
           {
               case Operation.Hide:
                   Ctrl.Hide();
                   break;
 
               case Operation.Show:
                   Ctrl.Show();
                   break;
           }
       }
    }
0
26.03.2015, 12:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2015, 12:42
Помогаю со студенческими работами здесь

Фильтрация через компонент ComboBox
Имеется БД как сделать фильтрацию так что бы названия Поля по которому будет производится...

Оглавление учебника через компонент ComboBox
Доброго времени суток! Ребят, нужна ваша помощь:( Для курсовой работы требуется написать...

Как через Combobox выбрать нужную процедуру
Есть задание, создать програмку в которой через combobox вибрать формулу которую мне надо ввести...

Через комбобокс выбрать цвет формы
Дорогие форумчане, прошу у вас помощи! Задали программу написать. Нужно, чтобы через комбобокс...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru