ComboBox - проблема с Locked

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
dima81
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 26.08.2007 (Вс) 22:36

ComboBox - проблема с Locked

Сообщение dima81 » 11.09.2007 (Вт) 16:25

Есть ли свойство или код (если да, то поделитесь, пожайлуста):

чтобы в ComboBox нельзя было стирать или изменять текущее значение записи (наподобие Locked), но в то же время можно было выбирать различные записи в этом ComboBox. (Locked блокирует и то и другое)

Долго искал по поиску, но нужной темы не нашел. :?

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 11.09.2007 (Вт) 16:35

В событие KeyPress добавить строчку: KeyAscii=0
Salus populi suprema lex

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.09.2007 (Вт) 16:42

Style = "2 - Dropdown List"
Изображение

dima81
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 26.08.2007 (Вс) 22:36

Сообщение dima81 » 11.09.2007 (Вт) 21:59

dr.MIG, этот способ помогает, если ты пытаешься удалить текст Backspace-сом, но если выделить кусок текста и нажать Delete, то текст удаляется. В принципе и этого достаточно

tyomitch, немножко не подходит, так как при загрузке формы мне нужна текущая запись

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 12.09.2007 (Ср) 8:24

Ну так и задай при загрузке какую хочешь запись.
Изображение

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 12.09.2007 (Ср) 8:43

dima81 писал(а):но если выделить кусок текста и нажать Delete, то текст удаляется

В KeyDown напиши KeyCode = 0

Ну а по второму способу tyomitch уже написал тебе.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

dima81
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 26.08.2007 (Вс) 22:36

Сообщение dima81 » 12.09.2007 (Ср) 13:53

VVitafresh, более по душе этот метод:

KeyCode = 0
KeyAscii=0

Спасибо!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.09.2007 (Ср) 14:10

Не забудь только, что пользователь может мышкой выделить и удалить текст.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 12.09.2007 (Ср) 14:27

Угу, и ей же вставить.
Изображение

dima81
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 26.08.2007 (Вс) 22:36

Сообщение dima81 » 12.09.2007 (Ср) 15:27

alibek, tyomitch:

Не забудь только, что пользователь может мышкой выделить и удалить текст


а вот это я упустил. С помощью кода можно как-нибудь эту проблему решить?

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 12.09.2007 (Ср) 15:41

tyomitch писал(а):Style = "2 - Dropdown List"
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 12.09.2007 (Ср) 19:52

dima81 писал(а):С помощью кода можно как-нибудь эту проблему решить?

Ну можно в KeyDown вставить Shift = 0, что отключит сочетания клавиш для вырезания/вставки. Чтобы грохнуть контекстное меню - смотреть в сторону сабклассинга.
А чем не устраивает вариант Тёмыча? (просто, когда я отвечал на вопрос, VB не было под рукой, вот и забыл про стили... А так вообще-то мой вариант менее красивый).
Salus populi suprema lex

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 12.09.2007 (Ср) 20:04

Если сильно хочется заблокировать контекстное меню, то вроде было это на форуме.
Вот (правда для текстбокса): http://bbs.vbstreets.ru/viewtopic.php?t=26238
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

dima81
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 26.08.2007 (Вс) 22:36

Сообщение dima81 » 13.09.2007 (Чт) 12:26

dr.MIG:


А чем не устраивает вариант Тёмыча?


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

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 13.09.2007 (Чт) 12:49

Так можно же это сделать програмно Combo1.Text=Combo1.List(0)
Salus populi suprema lex

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.09.2007 (Чт) 13:15

ListIndex, а не Text.
Lasciate ogni speranza, voi ch'entrate.

dima81
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 26.08.2007 (Вс) 22:36

Сообщение dima81 » 13.09.2007 (Чт) 13:36

Combo1.ListIndex = Combo1.List(0)


Пишет ошибку Type MisMatch

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 13.09.2007 (Чт) 13:40

dima81 писал(а):
Combo1.ListIndex = Combo1.List(0)


Пишет ошибку Type MisMatch

Тяжелый случай!
Использовать надо так:
Код: Выделить всё
Combo1.ListIndex = 0

а не путем подстановки куска одной цитаты в другую.
Весь мир матрица, а мы в нем потоки байтов!

dima81
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 26.08.2007 (Вс) 22:36

Сообщение dima81 » 13.09.2007 (Чт) 16:41

Viper:

Использовать надо так:
Visual Basic:
Combo1.ListIndex = 0


Если я не ошибаюсь использовать все-таки надо так:

Combo1 = Combo1.List(0)

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 13.09.2007 (Чт) 18:15

dima81, тебе alibek и Viper показали более правильный вариант, а
Код: Выделить всё
Combo1 = Combo1.List(0)

эквивалентно тому, что уже писали
Код: Выделить всё
Combo1.Text=Combo1.List(0)
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 89

    TopList