Как называется раскрывающийся список в visual studio
Элемент ComboBox образует выпадающий список и совмещает функциональность компонентов ListBox и TextBox. Для хранения элементов списка в ComboBox также предназначено свойство Items .
Подобным образом, как и с ListBox, мы можем в окне свойств на свойство Items и нам отобразится окно для добавления элементов ComboBox:
И как и с компонентом ListBox, здесь мы также можем программно управлять элементами.
При добавлении с помощью методов Add / AddRange все новые элементы помещаются в конец списка. Однако если мы зададим у ComboBox свойство Sorted равным true , тогда при добавлении будет автоматически производиться сортировка.
Мы можем получить элемент по индексу и производить с ним разные действия. Например, изменить его:
Настройка оформления ComboBox
С помощью ряда свойств можно настроить стиль оформления компонента. Так, свойство DropDownWidth задает ширину выпадающего списка. С помощью свойства DropDownHeight можно установить высоту выпадающего списка.
Еще одно свойство MaxDropDownItems позволяет задать число видимых элементов списка - от 1 до 100. По умолчанию это число равно 8.
Другое свойство DropDownStyle задает стиль ComboBox. Оно может принимать три возможных значения:
Dropdown : используется по умолчанию. Мы можем открыть выпадающий список вариантов при вводе значения в текстовое поле или нажав на кнопку со стрелкой в правой части элемента, и нам отобразится собственно выпадающий список, в котором можно выбрать возможный вариант
DropdownList : чтобы открыть выпадающий список, надо нажать на кнопку со стрелкой в правой стороне элемента
Simple : ComboBox представляет простое текстовое поле, в котором для перехода между элементами мы можем использовать клавиши клавиатуры вверх/вниз
Событие SelectedIndexChanged
Наиболее важным событием для ComboBox также является событие SelectedIndexChanged , позволяющее отследить выбор элемента в списке:
Элемент ListBox представляет собой простой список. Ключевым свойством этого элемента является свойство Items , которое как раз и хранит набор всех элементов списка.
Элементы в список могут добавляться как во время разработки, так и программным способом. В Visual Studio в окне Properties (Свойства) для элемента ListBox мы можем найти свойство Items. После двойного щелчка на свойство нам отобразится окно для добавления элементов в список:
В пустое поле мы вводим по одному элементу списка - по одному на каждой строке. После этого все добавленные нами элементы окажутся в списке, и мы сможем ими управлять:
Программное управление элементами в ListBox
Добавление элементов
Итак, все элементы списка входят в свойство Items , которое представляет собой коллекцию. Для добавления нового элемента в эту коллекцию, а значит и в список, надо использовать метод Add, например: listBox1.Items.Add("Новый элемент"); . При использовании этого метода каждый добавляемый элемент добавляется в конец списка.
Можно добавить сразу несколько элементов, например, массив. Для этого используется метод AddRange :
Вставка элементов
В отличие от простого добавления вставка производится по определенному индексу списка с помощью метода Insert :
В данном случае вставляем элемент на вторую позицию в списке, так как отсчет позиций начинается с нуля.
Удаление элементов
Для удаления элемента по его тексту используется метод Remove :
Чтобы удалить элемент по его индексу в списке, используется метод RemoveAt :
Кроме того, можно очистить сразу весь список, применив метод Clear :
Доступ к элементам списка
Используя индекс элемента, можно сам элемент в списке. Например, получим первый элемент списка:
Свойство Count возвращает количество элементов в списке:
Выделение элементов списка
При выделении элементов списка мы можем ими управлять как через индекс, так и через сам выделенный элемент. Получить выделенные элементы можно с помощью следующих свойств элемента ListBox:
SelectedIndex : возвращает или устанавливает номер выделенного элемента списка. Если выделенные элементы отсутствуют, тогда свойство имеет значение -1
SelectedIndices : возвращает или устанавливает коллекцию выделенных элементов в виде набора их индексов
SelectedItem: возвращает или устанавливает текст выделенного элемента
SelectedItems : возвращает или устанавливает выделенные элементы в виде коллекции
По умолчанию список поддерживает выделение одного элемента. Чтобы добавить возможность выделения нескольких элементов, надо установить у его свойства SelectionMode значение MultiSimple .
Чтобы выделить элемент програмно, надо применить метод SetSelected(int index, bool value) , где index - номер выделенного элемента. Если второй параметр - value имеет значение true , то элемент по указанному индексу выделяется, если false , то выделение наоборот скрывается:
Чтобы снять выделение со всех выделенных элементов, используется метод ClearSelected .
Событие SelectedIndexChanged
Из всех событий элемента ListBox надо отметить в первую очередь событие SelectedIndexChanged , которое возникает при изменении выделенного элемента:
Поле с выпадающим списком позволяет не только выбрать данные из списка, но и добавлять данные в список при вводе, а также поддерживает автозавершение.
За один раз может быть выбран один элемент.
добавление данных
Добавить данные можно с помощью диалогового окна или конструктора формы.
Выберите свойство Items и нажмите на кнопку или раскройте треугольник в элементе и нажмите на Edit Items, появится диалоговое окно, где можно добавить данные.
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace _0034
- public partial class Form1 : Form
- public Form1()
- InitializeComponent();
- >
- private void button1_Click( object sender, EventArgs e)
- textBox1.Text += " " + comboBox1.Text + "\r\n" ;
- >
- >
- >
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace _0034
- public partial class Form1 : Form
- public Form1()
- InitializeComponent();
- >
- private void button1_Click( object sender, EventArgs e)
- textBox1.Text += " " + comboBox1.Text + "\r\n" ;
- >
- >
- >
добавление данных в список через редактируемое поле
В данном примере, пользователь вводит данные в редактируемо поле. При нажатии на кнопку Добавить данные, в список будет добавлена запись.
При нажатии на кнопку ОК, выбранные данные из списка будут отображены в тестовом поле.
Разумеется, эти данные, которые будут добавлены, при закрытии приложения будут уничтожены.
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace _0035
- public partial class Form1 : Form
- public Form1()
- InitializeComponent();
- >
- //кнопка Добавить данные
- private void button1_Click( object sender, EventArgs e)
- if (comboBox1.Text != string .Empty)
- comboBox1.Items.Add(comboBox1.Text);
- >
- >
- //кнопка OK
- private void button2_Click( object sender, EventArgs e)
- textBox1.Text += " " + comboBox1.Text + "\r\n" ;
- >
- >
- >
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace _0035
- public partial class Form1 : Form
- public Form1()
- InitializeComponent();
- >
- //кнопка Добавить данные
- private void button1_Click( object sender, EventArgs e)
- if (comboBox1.Text != string .Empty)
- comboBox1.Items.Add(comboBox1.Text);
- >
- >
- //кнопка OK
- private void button2_Click( object sender, EventArgs e)
- textBox1.Text += " " + comboBox1.Text + "\r\n" ;
- >
- >
- >
добавление и удаление данных программно
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace _0036
- public partial class Form1 : Form
- //промежуточное свойство, которому будут передаваться данные из дочерней формы
- public ComboBox Between
- set
- comboBox1.Items.Add(value);
- >
- get
- return comboBox1;
- >
- >
- public Form1()
- InitializeComponent();
- >
- //кнопка Добавить
- private void button1_Click( object sender, EventArgs e)
- //очищаем редактируемое поле выпадающего списка
- comboBox1.Text = string .Empty;
- //открываем дочернюю форму и передаем ей ссылку
- new Form2().ShowDialog( this );
- >
- //кнопка Удалить
- private void button2_Click( object sender, EventArgs e)
- comboBox1.Items.Remove(comboBox1.SelectedItem);
- //очищаем редактируемое поле выпадающего списка
- comboBox1.Text = string .Empty;
- >
- //кнопка Удалить все
- private void button5_Click( object sender, EventArgs e)
- comboBox1.Items.Clear();
- //очищаем редактируемое поле выпадающего списка
- comboBox1.Text = string .Empty;
- >
- //кнопка OK
- private void button3_Click( object sender, EventArgs e)
- textBox1.Text += " " + comboBox1.Text + "\r\n" ;
- >
- //кнопка Clear
- private void button4_Click( object sender, EventArgs e)
- textBox1.Clear();
- >
- >
- >
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace _0036
- public partial class Form1 : Form
- //промежуточное свойство, которому будут передаваться данные из дочерней формы
- public ComboBox Between
- set
- comboBox1.Items.Add(value);
- >
- get
- return comboBox1;
- >
- >
- public Form1()
- InitializeComponent();
- >
- //кнопка Добавить
- private void button1_Click( object sender, EventArgs e)
- //очищаем редактируемое поле выпадающего списка
- comboBox1.Text = string .Empty;
- //открываем дочернюю форму и передаем ей ссылку
- new Form2().ShowDialog( this );
- >
- //кнопка Удалить
- private void button2_Click( object sender, EventArgs e)
- comboBox1.Items.Remove(comboBox1.SelectedItem);
- //очищаем редактируемое поле выпадающего списка
- comboBox1.Text = string .Empty;
- >
- //кнопка Удалить все
- private void button5_Click( object sender, EventArgs e)
- comboBox1.Items.Clear();
- //очищаем редактируемое поле выпадающего списка
- comboBox1.Text = string .Empty;
- >
- //кнопка OK
- private void button3_Click( object sender, EventArgs e)
- textBox1.Text += " " + comboBox1.Text + "\r\n" ;
- >
- //кнопка Clear
- private void button4_Click( object sender, EventArgs e)
- textBox1.Clear();
- >
- >
- >
сортировка
Если задать свойству Sorted значение true , данные будут отсортированы, а вот после того, как данные будут отсортированы, задать свойству Sorted значение false , то данные первоначальный несортированный вид, ПОЧЕМУ-ТО не принимают.
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace _0037
- public partial class Form1 : Form
- public Form1()
- InitializeComponent();
- >
- //флажок
- private void checkBox1_CheckedChanged( object sender, EventArgs e)
- comboBox1.Sorted = true ;
- >
- //кнопка ОК
- private void button1_Click( object sender, EventArgs e)
- textBox1.Text += " " + comboBox1.Text + "\r\n" ;
- >
- //кнопка Clear
- private void button2_Click( object sender, EventArgs e)
- textBox1.Clear();
- >
- >
- >
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace _0037
- public partial class Form1 : Form
- public Form1()
- InitializeComponent();
- >
- //флажок
- private void checkBox1_CheckedChanged( object sender, EventArgs e)
- comboBox1.Sorted = true ;
- >
- //кнопка ОК
- private void button1_Click( object sender, EventArgs e)
- textBox1.Text += " " + comboBox1.Text + "\r\n" ;
- >
- //кнопка Clear
- private void button2_Click( object sender, EventArgs e)
- textBox1.Clear();
- >
- >
- >
связывание элемента управления с базой данных
После того, как Visual Studio успешно создало соединение с базой данных, опять раскройте поле с выпадающим спискомData Source. Раскройте Other Data Sources. Раскройте starDataSet и выберите таблицу Colors.
Раскройте поле с выпадающим списком Display Member и выберите столбец Color. Данные этого столбца будут отображаться в списке. Данные этого столбца можно вывести с помощью свойства SelectedItem.
Если Вам нужно, то раскройте поле с выпадающим списком Value Member и выберите столбец id. Данные этого столбца можно вывести с помощью свойства SelectedValue.
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace _0038
- public partial class Form1 : Form
- public Form1()
- InitializeComponent();
- >
- private void Form1_Load( object sender, EventArgs e)
- // TODO: This line of code loads data into the 'starDataSet.Book' table. You can move, or remove it, as needed.
- this .bookTableAdapter.Fill( this .starDataSet.Book);
- // TODO: This line of code loads data into the 'starDataSet.Colors' table. You can move, or remove it, as needed.
- this .colorsTableAdapter.Fill( this .starDataSet.Colors);
- //очищаем редактируемое поле
- comboBox1.Text = string .Empty;
- //очищаем редактируемое поле
- comboBox2.Text = string .Empty;
- >
- //кнопка OK
- private void button1_Click( object sender, EventArgs e)
- //ВНИМАНИЕ. при работе с базой данных, использование
- //SelectedItem приводит к выводу не выбранного элемента, а
- //System.Data.DataRowView
- textBox1.Text += " " + comboBox1.SelectedItem + "\r\n" ;
- textBox2.Text += " " + comboBox1.SelectedValue + "\r\n" ;
- textBox3.Text += " " + comboBox1.Text + "\r\n" ;
- //очищаем редактируемое поле
- comboBox1.Text = string .Empty;
- >
- //кнопка Clear
- private void button2_Click( object sender, EventArgs e)
- textBox1.Clear();
- textBox2.Clear();
- textBox3.Clear();
- >
- //кнопка OK
- private void button3_Click( object sender, EventArgs e)
- //ВНИМАНИЕ. при работе с базой данных, использование
- //SelectedItem приводит к выводу не выбранного элемента, а
- //System.Data.DataRowView
- textBox4.Text += " " + comboBox2.SelectedItem + "\r\n" ;
- textBox5.Text += " " + comboBox2.SelectedValue + "\r\n" ;
- textBox6.Text += " " + comboBox2.Text + "\r\n" ;
- //очищаем редактируемое поле
- comboBox2.Text = string .Empty;
- >
- //кнопка Clear
- private void button4_Click( object sender, EventArgs e)
- textBox4.Clear();
- textBox5.Clear();
- textBox6.Clear();
- >
- >
- >
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace _0038
- public partial class Form1 : Form
- public Form1()
- InitializeComponent();
- >
- private void Form1_Load( object sender, EventArgs e)
- // TODO: This line of code loads data into the 'starDataSet.Book' table. You can move, or remove it, as needed.
- this .bookTableAdapter.Fill( this .starDataSet.Book);
- // TODO: This line of code loads data into the 'starDataSet.Colors' table. You can move, or remove it, as needed.
- this .colorsTableAdapter.Fill( this .starDataSet.Colors);
- //очищаем редактируемое поле
- comboBox1.Text = string .Empty;
- //очищаем редактируемое поле
- comboBox2.Text = string .Empty;
- >
- //кнопка OK
- private void button1_Click( object sender, EventArgs e)
- //ВНИМАНИЕ. при работе с базой данных, использование
- //SelectedItem приводит к выводу не выбранного элемента, а
- //System.Data.DataRowView
- textBox1.Text += " " + comboBox1.SelectedItem + "\r\n" ;
- textBox2.Text += " " + comboBox1.SelectedValue + "\r\n" ;
- textBox3.Text += " " + comboBox1.Text + "\r\n" ;
- //очищаем редактируемое поле
- comboBox1.Text = string .Empty;
- >
- //кнопка Clear
- private void button2_Click( object sender, EventArgs e)
- textBox1.Clear();
- textBox2.Clear();
- textBox3.Clear();
- >
- //кнопка OK
- private void button3_Click( object sender, EventArgs e)
- //ВНИМАНИЕ. при работе с базой данных, использование
- //SelectedItem приводит к выводу не выбранного элемента, а
- //System.Data.DataRowView
- textBox4.Text += " " + comboBox2.SelectedItem + "\r\n" ;
- textBox5.Text += " " + comboBox2.SelectedValue + "\r\n" ;
- textBox6.Text += " " + comboBox2.Text + "\r\n" ;
- //очищаем редактируемое поле
- comboBox2.Text = string .Empty;
- >
- //кнопка Clear
- private void button4_Click( object sender, EventArgs e)
- textBox4.Clear();
- textBox5.Clear();
- textBox6.Clear();
- >
- >
- >
заполняем элемент данными из разных источников данных
В данном примере, наш элемент будет заполнен данными из: коллекции, текстового документа, XML файла, базы данных.
Есть ли в Visual Studio окно со списком методов активного класса? Небольшое окно вроде обозревателя решений было бы здорово. В Eclipse он есть.
Прямо над окном кода есть выпадающий список:
Она называется панелью навигации и содержит три раскрывающихся списка: первый раскрывающийся список содержит проект , второй тип и третьи элементы (методы).
Вы можете использовать сочетание клавиш Ctrl + F2 (переместить фокус в раскрывающийся список проекта ) и Tab дважды нажать (переместить фокус в третий раскрывающийся список), чтобы сфокусировать его, стрелка вниз расширит список.
@ysrb - Понятия не имею. Я все еще здесь на VS2010. Учитывая, что этот вопрос касался VS2008, я бы посоветовал вам задать новый вопрос (обратная ссылка на него, чтобы показать, что это не дубликат).
Я нашел, как включить раскрывающийся список, как показано в первом ответе (@ChrisF):
Перейдите в Параметры-> Текстовый редактор -> (ваш язык)
и отметьте «Панель навигации» в разделе отображения.
Спасибо mark.oliver.asp.newbie. Я только что обновился с 2015 на 2019 и пытался найти эту панель во всем меню опций.
Начиная с Visual Studio 2012, вы можете просматривать структуру (поля и методы) в обозревателе решений, развернув узел, соответствующий вашему файлу.
Я предпочитаю этот вариант, чем раскрывающийся, который досадно отсортирован по алфавиту (на мой взгляд).
Обратите внимание, что если у вас есть, partial class то все члены перечислены под этим узлом, а не только те, которые находятся только в этом файле.
Ярлык для панели навигации - Ctrl + F2 . Сначала переводит вас к раскрывающемуся списку типов. Нажмите вкладку, чтобы перейти к раскрывающемуся списку методов, а затем введите метод, чтобы перейти к нему.
В ReSharper есть «ReSharper | Windows | Окно File Structure ', которое используется для визуализации текущей файловой структуры кода.
Resharper имеет окно структуры файлов, которое очень похоже на представление схемы затмения. Первоначально ответил на:
CTRL - F12 вызывает окно перехода к элементам в Resharper. Он перечисляет все методы в классе и дает вам возможность поиска.
Несмотря на то, что это старый вопрос, возможно, этот ответ поможет вам, как помог мне.
вы можете скачать расширение codemaid отсюда: сайт codemaid
у него много функций, которые вы можете найти на их веб-сайте.
тот, который связан с этим вопросом, - это копание кода
Другими словами, это дает вам возможность видеть методы и свойства, а также реорганизовывать их с помощью перетаскивания. это мое расширение для повседневного использования
CodeMaid переопределяет большую часть встроенных функций VS, и неприятно видеть дублирующиеся элементы меню, загрязняющие среду IDE.
Я не думаю , что это так, некоторые полезные функциональные нравится ctrl+m+z , ctrl+m+space , ctrl+m+f , sort lines , clean whole solution , collapse all in solution explorer , arrange methods with drag and drop , method and properties tree инструменты , которые можно найти только в некоторых инструментах , таких как reshraper.
Я не считал это нарушением, но большинство процедур «очистки кода» в основном представляют собой священные войны стилей кодирования, которые меня не волнуют. Продукт первый. Меня даже не волнует, есть ли в одном файле пробелы и табуляции, только производительность.
Схема кода (лопата) действительно полезна. Было бы здорово, если бы он синхронизировался с текущим активным / выбранным членом в текстовом редакторе.
привет всем))
как называется элемент в панели инструментов для конструирования формы который бы изменял содержание в textbox с помощью выдвигающегося из себя списка вариантов отображения?
это выглядит например так как и шрифт выбирать текста в MS Office Word
Выпадающий список, как у поисковика
Как сделать выпадающий список на подобе строки поиска в яндексе/гугле: *взял с этого сайта То.
Как сделать выпадающий список
Как сделать список как на скриншоте?
Как сделать выпадающий список, в котором каждая из опций будет в виде списка
Как сделать внизспадной список в котором каждая из опций будет в виде списка. На фото пример. .
Решение
наверно о нем. а как сделать чтоб изменялось в текстбоксе при выборе определенного значения в комбобоксе? типа как сделать чтоб оно влияло на текстбокс
Добавлено через 13 минут
Ладно, спасибо, уже нашел)
Добавлено через 58 минут
а как на форме при нажатии кнопки скрывать определенные ее элементы?(текстбокс, другую кнопку и т.д. )
mutex, спасибо)
Добавлено через 6 минут
подскажите пожалуйста, как ограничить ввод в textbox одним символом?
чтобы после того как ввел один символ дальше уже ничего не вводилось бы
mutex, спасибоО)
Добавлено через 11 минут
а как чтоб когда что то в textBox пишешь при нажатии Enter началось выполнение?
А вообще, для этого существуют кнопки, с помощью свойств Accept и Default можете достичь такого эффекта.
almazsr, спасибо, я про кнопки знаю. хочется просто реализовать двумя способами
Добавлено через 2 минуты
almazsr, а что это за объект e?
в e.Key
Добавлено через 4 минуты
и там не e.Key, a e.KeyData должно быть.
по другому не работает.
оно работает но почему то издает звук при нажатии кнопки
Вот так выглядит форма:
А вот так выглядит код
Вот.. это как бы на курсовую мне дали задание сделать калькулятор для программистов. еще планирую реализовать там арифметические операции при разных системах счисления, логику(или, и, исключающее или). подумал, что может полезно будет, чтоб там был определитель номера символа юникодовского.
Подскажите, что еще можно полезного внедрить сюда, чтоб было удобно программисту, а то я только начинающий и придумал из своего только про получения номера символа.
может еще арифметику указателей для программистов на С++.
Подскажите пожайлуйста, как узнать в каком из текстбоксов находится курсор?
Добавлено через 6 минут
В смысле чтоб программа узнавала
ID_BaVa, столько "детских" вопросов. Может уже пора литературу почитать?
и обязательно обрати внимание на правила п.3.15
Выпадающий список
Подскажите пожалуйста, у меня есть форма для заполнения, с полями для ввода. Я хочу, что бы в одном.
Выпадающий список
Доброго времени суток! Столкнулся с проблемой и не могу её решить: есть combobox, таблица в БД SQL;.
Выпадающий список ComboBox
Добрый вечер, реализую такой вид подсказок в Винформе. Возник вопрос, когда подсказка "подсказывает.
Выпадающий список с чекбокосом
Добрый день, Может кто подсказать как сделать выпадающий список с чекбоксами в заголовке.
Читайте также: