Miguel Altamirano Morales Ответов: 2

Проблемы с комбобоксом


Всем доброе утро.

Я конвертирую старое приложение Access 2010 в VB Net 2017 / SQL Server, и у меня возникли проблемы с ComboBox.

Access использует элемент управления "Cuadro Combinado" (Combined Box или square на английском языке более или менее) в форме, поэтому я предположил, что должен использовать элемент управления ComboBox для достижения тех же функций в VB net (вы знаете, мои клиенты хотят видеть точно такое же поведение в vb Net).

Но теперь я обнаружил, что combobox не выполняет некоторые из этих функций функционально (или, по крайней мере, я не знаю, как это сделать)

- он не отображает заголовки запроса, который заполняет комбо, и если я помещаю его вручную, заголовки прокручиваются вверх, когда я использую вертикальную прокрутку; они не остаются фиксированными.

- Данные не разделяются по столбцам. Мне нужно использовать 5 столбцов с разными данными.

- Когда я пишу символы в комбо, выпадающий список не открывается автоматически (как я пишу символы), чтобы увидеть все элементы, начинающиеся с начальной буквы, которую я ставлю в комбо, и последовательные, как я видел другие типы элементов управления.

Контроль доступа делает это идеально. Я просто не понимаю, почему VB net этого не делает.

Есть ли способ, которым мой ComboBox работает именно так ?

Правильно ли вместо этого использовать ComboBox или другой элемент управления ?

Что я уже пробовал:

Я пытаюсь использовать вместо этого список, но мне трудно думать, что это невозможно сделать.

2 Ответов

Рейтинг:
7

phil.o

Несмотря на оба контроля в доступе и VB.NET имеют одно и то же имя, они не реализуются одинаковым образом и, таким образом, представляют собой различные типы поведения.

Вы можете попробовать реализовать свой собственный ComboBox .NET с нуля, но я бы не рекомендовал этого делать, так как вы, похоже, совсем новичок .Чистый мир.
К счастью, это общее требование, которое уже было рассмотрено; у CP даже есть хорошая статья об этом: Несколько Столбцов Поля Со Списком[^]. Даже если связанный элемент управления разработан на языке C#, это не означает, что вы должны переводить его код на язык C#. VB.NET чтобы использовать его; вы просто должны ссылаться на него .dll определяет его в вашем проекте, и вы сможете использовать его с Вашего компьютера. VB.NET проект.

Что касается вашего требования к отображению элементов, соответствующих набору текста, то это называется автозавершением и поддерживается объектом поля со списком.
Вот ссылка, которая объяснит, как правильно его использовать (он должен быть настроен для использования):
Vb.net Автозаполнение ComboBox[^]
Вы также можете поискать в google ".net combo autocomplete", и вы получите несколько результатов, включая видео на youtube.

Не стесняйтесь спрашивать о дальнейших уточнениях, если что-то кажется вам неясным.

Надеюсь, это поможет. Любезно.


Miguel Altamirano Morales

Большое спасибо за ваш ответ и вашу доброту, Фил.

Да, даже если я работаю с VB net уже несколько лет, я не на том уровне, на котором смог бы построить новый ComboBox с нуля. У меня есть еще одно предложение, и оно очень технично для меня. Может быть, если бы у меня было время, я мог бы углубиться в это, но сейчас у меня нет времени, и я все еще работаю с настольными приложениями.

Вопрос: Могу ли я загрузить новые комментарии, даже если вопрос уже принят ?

phil.o

Вы имеете в виду: "могу ли я изменить свой вопрос, как только он будет опубликован ?"
Да, ты можешь. Внизу есть зеленая кнопка "улучшить вопрос", вы можете изменить свой вопрос, когда захотите.

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

Miguel Altamirano Morales

Большое спасибо.

Miguel Altamirano Morales

Привет, Фил. Я очень благодарен вам и всем остальным друзьям на этом портале. Я уже решил, что мне нужно сделать.
Что касается вашего совета по поводу приложения MultiColumn ComboBox, я загрузил его на свой компьютер, и что-то не получилось; есть папка, которая не загружалась правильно. Как только я сегодня вернусь домой, я попробую еще раз.
Вопрос: у меня есть Visual Studio 2010; как вы думаете, это приложение работает с ним ?.
У меня также есть сообщество Visual Studio 2017, но я не знаю, почему оно больше не работает, может быть, это вопрос другого рода.

phil.o

Привет, Мигель. Я не могу сказать, будет ли проект компилироваться на Visual Studio 2010; Вы должны попробовать; если возникнет какая-либо ошибка, всегда есть способ обойти эту проблему.
Любезно.

Miguel Altamirano Morales

Большое спасибо, Фил. Я уже получил то, что хотел. Проект комбинированного поля с несколькими столбцами нуждался в ссылке. Я просто добавил его.

Забавно, я тоже использовал форму, но с DataGridView, показывающим все столбцы в выпадающем списке комбо, как это делает этот проект.

Новичку повезло !!!


phil.o

Рад узнать, что вы все уладили :)

Miguel Altamirano Morales

Спасибо. Я надеюсь снова связаться с вами.

да благословит вас Бог

Рейтинг:
18

RickZeeland

Возможно, это именно то, что вы ищете, но имейте в виду, что для этого нужна Entity Framework:
Box мульти-комбо столбца в datagridview[^]
И этот тоже может представлять интерес: Как создать пользовательский ComboBox с нуля[^]


Miguel Altamirano Morales

Большое спасибо, Рикзиленд; я посмотрю, что вы предлагаете, и дам вам знать, что произошло.

Dave Kreskowiak

Entity Framework не поддерживает базы данных Access.

Miguel Altamirano Morales

Привет, Дэйв, я рад снова связаться с тобой.

Я не использую базы данных Access; я использую Access 2010 в качестве среды разработки старого приложения, работающего с базой данных SQL Server, и пытаюсь импортировать его в VB Net 2017, используя тот же SQL Server и базы данных.

Спасибо.

RickZeeland

Обновлен вопрос, теперь упоминается SQL Server !

Miguel Altamirano Morales

Я не понимаю.

RickZeeland

Похоже на комедию ошибок, ха-ха, если я неправильно понял, просто отмените мои изменения !

Miguel Altamirano Morales

Извините, я не понимаю, что вы имеете в виду. Может быть, я что-то путаю с предыдущим вопросом.

RickZeeland

Нет, я имел в виду, что обновил ваш вопрос в верхней части и изменил строку на:
"Я конвертирую старое приложение Access 2010 в VB Net 2017 / SQL Server"