Ошибка на SetFocus

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Ошибка на SetFocus

Сообщение Чудик » 05.01.2005 (Ср) 1:39

Никто не поделиться соображениями, почему на строчку
Код: Выделить всё
Me.txtAccess(2).SetFocus

прога ругается ошибкой вызова процедуры и ошибкой аргумента?
Век живи - век учись!
www.detal-plast.narod.ru

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

Сообщение tyomitch » 05.01.2005 (Ср) 2:05

Может, форма невидимая?
Изображение

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 05.01.2005 (Ср) 2:08

Незнаю что может быть, возможно txtAccess(2) отсутсвует, но можеш юзать API-шную:
Код: Выделить всё
Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
الفيجوال بيسك الرابح

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.01.2005 (Ср) 9:05

А может он сам невидимый\unenabled?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 05.01.2005 (Ср) 11:53

А где именно эта строка находится? А то там могут быть нюансы... :)

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 05.01.2005 (Ср) 12:07

Нет, все видимое - и форма, и поле; я даже явно задал видимость поля через Visible, но ошибка не ушла.
Идея с API хороша, но упомянутая функция конфликтует с зарезервированной функцией VB SetFocus. Комп тоже ругается...
Идею довел до аналога функции
Код: Выделить всё
Private Declare Function SetFocusAPI& Lib "user32" Alias "SetFocus" (ByVal hwnd As Long)

которая используется в VB как раз для разрешения конфликтов в подобных случаях.
И через API все заработало. Так, что спасибо за идею, хотя буду признателен, все-таки, если кто-нибудь объяснит - почему стандартная встроенная функция SetFocus не работает в данном случае:
есть форма, два TextBox в массиве и две кнопки в массиве. Первый TextBox не видим, второй явно определен видимым. При открытии формы на второй TextBox нужно установить фокус. Но при стандартной setFocus - ошибка.
Век живи - век учись!
www.detal-plast.narod.ru

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.01.2005 (Ср) 12:14

С этого надо было начинать :)

При юзании контролов из form_load имеет прямой смысл сначала сделать me.show.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 05.01.2005 (Ср) 12:18

Да, чуть не забыл - при открытии формы видимый textBox увеличивает свою ширину и закрывает тем самым невидимый TextBox. Может фишка в этом?
Век живи - век учись!
www.detal-plast.narod.ru

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 05.01.2005 (Ср) 12:22

Да, GSerg, ты прав. Туговат я все-таки ... Маленький момент, а не углядел.
Век живи - век учись!
www.detal-plast.narod.ru


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList