powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Событие text1_Change
58 сообщений из 58, показаны все 3 страниц
Событие text1_Change
    #38893264
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На форме form1 есть text1.text.
Я хотел в модуле кода прописать процедуру
Код: vbnet
1.
public sub form1.text1_change


А вылазит ошибка expected end of statement.
Получается события связанные с элементами управления формы нельзя прописывать в модуле?
Подскажите пожалуйста уважаемые спецы.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38893299
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обработчик события формы размещается только в модуле формы.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38893306
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaОбработчик события формы размещается только в модуле формы.
Эх жаль, хотел немного красоту навести. Ну да ладно. Спасибо!
...
Рейтинг: 0 / 0
Событие text1_Change
    #38893308
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никто не мешает из обработчика в модуле формы вызывать функции/процедуры из common-модулей.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38893325
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaНикто не мешает из обработчика в модуле формы вызывать функции/процедуры из common-модулей.
Вот за этот совет большое спасибо!!! Сам не допер
...
Рейтинг: 0 / 0
Событие text1_Change
    #38894250
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите пожалуйста. У меня 3 формы и в каждой форме прописаны события text_change
Процедура события одинаковые для каждого text.text (исключающие ввод ненужных символов)

Я хотел навести красоту и убрать с кода формы эти процедуры, ибо они очень громоздкие и их на каждой форме по 5.
Но получается что мне придется делать дурную работу...т.е. переносить либо в 3 модуля от каждой формы по 5 процедур, либо в один модуль все 15 процедур.
Никак нельзя, чтобы с трех форм ссылались в один модуль на 5 общих процедур?
...
Рейтинг: 0 / 0
Событие text1_Change
    #38894286
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronНикак нельзя, чтобы с трех форм ссылались в один модуль на 5 общих процедур?почему нельзя? Что мешает?

vdekameronПроцедура события одинаковые для каждого text.text (исключающие ввод ненужных символов)на будущее - в таких случаях делают UserControl, который внутри себя содержит и текстбок и способы его обработки
...
Рейтинг: 0 / 0
Событие text1_Change
    #38894291
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proна будущее - в таких случаях делают UserControl, который внутри себя содержит и текстбок и способы его обработки
Про это надо почитать.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38894314
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameron Никак нельзя, чтобы с трех форм ссылались в один модуль на 5 общих процедур? Да легко. Просто передавай ещё в эту функцию ссылку на текущий контрол, ну и, возможно, на текущую форму. А в коде процедуры используй их, чтобы брать правильные значения и записывать результаты в правильные места.
А ещё учти, что очередной вызов может состояться до того, как закончится обработка предыдущего, и, во избежание, не увлекайся использованием глобальных и статических переменных.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38894322
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaДа легко. Просто передавай ещё в эту функцию ссылку на текущий контрол
Не получится. Я спиз-ел. В каждой из этих процедур-событий принимают значения разные переменные.
Т.е. получается , что все они разные. Когда объяснял не учел это.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38894333
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит их нужно унифицировать.

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

Даже если у тебя есть несколько циклов For i=1 to 5, где 5 - это, скажем, количество текстбоксов на форме, то 5 должна быть объявлена константой и вынесена в определения. Потому что, кнопок рано или поздно станет 6, и ты задолбаешься искать все эти пятерки в коде. А если это, скажем, массив текстбоксов, тогда тем более - циклы должны быть до MyTextbox.Ubound, а не до 5
...
Рейтинг: 0 / 0
Событие text1_Change
    #38894338
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProЗначит их нужно унифицировать.
Понял
...
Рейтинг: 0 / 0
Событие text1_Change
    #38894340
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProВ идеале, ни одна смысловая строчка кода не должна повторяться.
Мне еще до этого как до парижа пешком)))
...
Рейтинг: 0 / 0
Событие text1_Change
    #38897176
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proна будущее - в таких случаях делают UserControl

Помогите пожалуйста сделать этот User Control. Я его добавил в проект. Мои действия дальше?
...
Рейтинг: 0 / 0
Событие text1_Change
    #38897209
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открыть учебник и читать )
После прочтения непонятное спросить )
...
Рейтинг: 0 / 0
Событие text1_Change
    #38897305
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProОткрыть учебник и читать )
А я разве против?) Я за любой здравый кипишь) Я прочел книгу для начинающих, где автор постарался дать где нужно больше инфы, где посчитал менее значимым - меньше.
О User Control вообще не посчитал нужным говорить.
Поэтому и спрашивал у вас посоветовать хорошую книгу, что-то среднее м/у новичком и профи, как вы.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38897381
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда вкратце:

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

Первый шаг - масштабирование. В событии Usercontrol_Resize нужно спозиционировать и смасштабировать все вложенные контролы.

Потом добавляешь нужные свойства и события, наполняешь контрол функциональностью.

Можешь попробовать воспользоваться мастером создания юзерконтрола и посмотреть, чего он там нагенерит по умолчанию.
В сожалению, в VB нельзя взять и унаследовать какой-то другой контрол. К примеру, взять текстбокс и нарастить его функциональность. Все нужные свойства/методы/события придется создавать с нуля.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38897706
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПроцедура события одинаковые для каждого text.text (исключающие ввод ненужных символов)
Я хотел навести красоту и убрать с кода формы эти процедуры, ибо они очень громоздкие и их на каждой форме по 5.
В каждом текст боксе свои ограничения?
Если ограничения разные, то передавать в процедуру проверки и параметры (кроме того что было предложено выше).
А профедура проверки, естественно, только одна!
И свой контрол, как мне кажется, в данном случае не нужен
...
Рейтинг: 0 / 0
Событие text1_Change
    #38898624
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755В каждом текст боксе свои ограничения?
Код: vbnet
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.
Private Sub VerhniiB_Change() 
        If Vihod Then Exit Sub  

    Dim Val1 As String
    Val1 = VerhniiB.Text
           Val1 = Replace(Val1, "d", "h")
           Val1 = Replace(Val1, "D", "h")
           Val1 = Replace(Val1, "e", "h")
           Val1 = Replace(Val1, "E", "h")
                 
    If Len(Val1) = 0 Then
        Per1 = ""
        VelVB = 0
        Exit Sub
    End If
        
    Val1 = Replace(Val1, ".", ",") 
    Select Case True
        Case Val1 Like ",*": Val1 = "0" & Val1
        Case Val1 Like "*,": Val1 = Val1 & "0"
        End Select
            
        If IsNumeric(Val1) Then
            Per1 = VerhniiB.Text
            
                  KolS = Len(Per1)
                  Simvol = Mid(Per1, KolS, 1)
            Select Case Simvol
                Case "+": Per1 = Replace(Per1, Simvol, ""): VerhniiB.Text = Per1 
                Case "-": Per1 = Replace(Per1, Simvol, ""): VerhniiB.Text = Per1
            End Select
                  
                  Simvol = Mid(Per1, 1, 1) 
            Select Case Simvol
                Case "+", "-", ".", ",": Per1 = Replace(Per1, Simvol, ""): VerhniiB.Text = Per1 
            End Select
        Else
            Vihod = True
            VerhniiB.Text = Per1
        End If
        VerhniiB.SelStart = Len(VerhniiB))
        If KolS1 <> KolS Then
            VelVB = Val(Replace(Val1, ",", "."))
        Else
            VelVB = Val(Replace(Val1, ",", ".")) val("2.15")
            VerhniiB.SelStart = Len(VerhniiB)
        End If
                 Vihod = False
                 KolS1 = KolS
       
       
        If Not IsNumeric(Val1) And IsNumeric(Replace(Per1, ".", ",")) Then VelVB = Replace(Per1, ".", ",")


End Sub


В каждом текстбоксе одинаковые ограничения, но в каждом из них получает значение определенная переменная в этом текстбоксе это - VelVB, в другом, другая переменная и т.д. Поэтому и не могу использовать один код для каждого текстбокса
...
Рейтинг: 0 / 0
Событие text1_Change
    #38898705
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronПоэтому и не могу использоватьНеверный вывод.
Значит надо вынести переменную в свойство юзерконтрола, или передавать ее ByRef в методе, или возвращать ее в событии, или использовать массив переменных или коллекцию, или.... Правило сохраняется - код повторяться не должен.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38898734
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
 VelVB = Val(Replace(Val1, ",", ".")) val("2.15")


??
...
Рейтинг: 0 / 0
Событие text1_Change
    #38898738
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
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.
56.
57.
58.
59.
60.
Option Explicit
Dim Vihod As Boolean
Dim VelVB

Private Sub VerhniiB_Change()
        If Vihod Then Exit Sub
        QWERT VerhniiB, VelVB
End Sub

Sub QWERT(Kontr As TextBox, PEREM)
Dim Per1, KolS, Simvol, KolS1
    Dim Val1 As String
    Val1 = VerhniiB.Text
           Val1 = Replace(Val1, "d", "h")
           Val1 = Replace(Val1, "D", "h")
           Val1 = Replace(Val1, "e", "h")
           Val1 = Replace(Val1, "E", "h")
                 
    If Len(Val1) = 0 Then
        Per1 = ""
        PEREM = 0
        Exit Sub
    End If
        
    Val1 = Replace(Val1, ".", ",")
    Select Case True
        Case Val1 Like ",*": Val1 = "0" & Val1
        Case Val1 Like "*,": Val1 = Val1 & "0"
        End Select
            
        If IsNumeric(Val1) Then
            Per1 = VerhniiB.Text
            
                  KolS = Len(Per1)
                  Simvol = Mid(Per1, KolS, 1)
            Select Case Simvol
                Case "+": Per1 = Replace(Per1, Simvol, ""): VerhniiB.Text = Per1
                Case "-": Per1 = Replace(Per1, Simvol, ""): VerhniiB.Text = Per1
            End Select
                  
                  Simvol = Mid(Per1, 1, 1)
            Select Case Simvol
                Case "+", "-", ".", ",": Per1 = Replace(Per1, Simvol, ""): VerhniiB.Text = Per1
            End Select
        Else
            Vihod = True
            VerhniiB.Text = Per1
        End If
        Kontr.SelStart = Len(VerhniiB)
        If KolS1 <> KolS Then
            PEREM = Val(Replace(Val1, ",", "."))
        Else
            PEREM = Val(Replace(Val1, ",", ".")) 'val("2.15")
            VerhniiB.SelStart = Len(VerhniiB)
        End If
                 Vihod = False
                 KolS1 = KolS
        If Not IsNumeric(Val1) And IsNumeric(Replace(Per1, ".", ",")) Then PEREM = Replace(Per1, ".", ",")

End Sub
...
Рейтинг: 0 / 0
Событие text1_Change
    #38899025
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755
Код: vbnet
1.
 VelVB = Val(Replace(Val1, ",", ".")) val("2.15")



??

За это прошу прощения, вычистил свои комменты не до конца.
За код спасибо. Парадокс но когда мне говорят сделать как-то, я ловлю ступор. когда я вижу код, сразу понимаю что все очень просто.(( Снова убеждаюсь что практики у меня очень мало.

Единственное для меня есть 2 принципиальные неточности в вашем коде.
1)Строка
Код: vbnet
1.
Kontr.SelStart = Len(VerhniiB)

мешающая добавлять символы в середину числа.
2)Переменную Per1 я объявил глобально в окне кода, т.к. Если ее объявить локально в процедуре, то при вводе в текстовое поле любой буквы, все число стерается. Чего быть не должно.
А вообще спасибо что потратили свое время, чтобы вникнуть в этот код.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38899026
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProПравило сохраняется - код повторяться не должен.
Похоже, что так тоже подойдет, как привел Алекс
...
Рейтинг: 0 / 0
Событие text1_Change
    #38899399
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторесть 2 принципиальные неточности в вашем коде.
В моём коде?
Я в код даже не вникал! Это ваш код!!
Код: vbnet
1.
Kontr.SelStart = Len(VerhniiB)


Было сказано, что переменная VelVB в данном случае будет меняться, я и вынес её в глобальные.
За другие переменные ничего не было сказано. И я понятия не имею ничего про них.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38899412
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755В моём коде?
Я в код даже не вникал! Это ваш код!!

Это не было претензией
Спасибо за помощь.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38899979
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста как эту громоздкую процедуру сделать короткой
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Ochistka()
     IzmVB2.Text = "": IzmVB3.Text = "": IzmVB4.Text = "": IzmVB5.Text = "": IzmVB6.Text = "": IzmVB7.Text = ""
     IzmNB2.Text = "": IzmNB3.Text = "": IzmNB4.Text = "": IzmNB5.Text = "": IzmNB6.Text = "": IzmNB7.Text = ""
     VB2.Text = "": VB3.Text = "": VB4.Text = "": VB5.Text = "": VB6.Text = "": VB7.Text = ""
     NB2.Text = "": NB3.Text = "": NB4.Text = "": NB5.Text = "": NB6.Text = "": NB7.Text = ""
     G2.Text = "": G3.Text = "": G4.Text = "": G5.Text = "": G6.Text = "": G7.Text = ""
     P2.Text = "": P3.Text = "": P4.Text = "": P5.Text = "": P6.Text = "": P7.Text = ""
     Rashod2.Text = "": Rashod3.Text = "": Rashod4.Text = "": Rashod5.Text = "": Rashod6.Text = "": Rashod7.Text = ""
     SumVB.Text = "": SumNB.Text = ""
End Sub
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900004
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
Dim j As Control
For Each j In Me.Controls
  If j.Name.... Then
    j.Text = ""
  End If
Next
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900104
AndreyMp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если имеется ввиду очистка всех текстбоксов на форме, то надо так и сказать VB. TypeOf ... Is https://msdn.microsoft.com/ru-ru/library/s4zz68xc.aspx
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900146
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеете ввиду
Код: vbnet
1.
If j.Name="IzmVB2" or j.Name ="IzmVB3"................ Then
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900150
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, имею ввиду например
Код: vbnet
1.
If Left$(j.Name, 3)<>"cmd" Then

все зависит от того, каким образом ты собираешься отделить элементы, которые нужно очищать от элементов, которые не нужно. Это может быть имя, Tag, тип элемента, расположение его в определенном контейнере и т.п.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900179
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreyMpЕсли имеется ввиду очистка всех текстбоксов на форме
Нет, меня поняли правильно, нужно только определенные вычищать
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900188
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proвсе зависит от того, каким образом ты собираешься отделить элементы, которые нужно очищать от элементов, которые не нужно. Это может быть имя, Tag, тип элемента, расположение его в определенном контейнере и т.п.
Нет, именно по именам нужно, тогда я так понимаю именно так, как я привел после if
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900191
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы так сделал
Код: vbnet
1.
2.
3.
4.
5.
6.
Dim j As Control
For Each j In Me.Controls
  If j.Tag = "NeedClear" Then
    j.Text = ""
  End If
Next


или так
Код: vbnet
1.
2.
3.
4.
5.
6.
Dim j As Control
For Each j In Me.Controls
  If j.Parent.Name = "Frame1" Then
    j.Text = ""
  End If
Next
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900192
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Select Case j.Name
Case "myname"
 ...
Case "nextname"
...
Case Else
...
End Select
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900196
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronНет, именно по именам нужнопочему? Что мешает ввести какой-то признак искусственно?
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900219
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proпочему? Что мешает ввести какой-то признак искусственно?
C Tag хорошая идея , но ведь его нужно заполнить для каждого текстбокса.
С Рамкой тоже хорошо, но тут возникает сразу вопрос, если эти текстбоксы будут вразброс, то как тут рамкой выкрутиться.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900227
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

А я бы чуть по-другому сделал, не так громоздко бы вышло.
Код: vbnet
1.
2.
3.
4.
Select Case j.Name
Case "myname","nextname"....
...
End Select
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900229
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Накидали мне вариантов)) Спасибо
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900232
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronС Рамкой тоже хорошо, но тут возникает сразу вопрос, если эти текстбоксы будут вразброс, то как тут рамкой выкрутиться.я же форму не вижу
vdekameronC Tag хорошая идея , но ведь его нужно заполнить для каждого текстбокса.выделяешь их все мышкой с шифтом или контролом и прописываешь тэг одновременно всем.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900250
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proвыделяешь их все мышкой с шифтом или контролом и прописываешь тэг одновременно всем.
Ага, спасибо. Это самый лучший вариант. С Select Case тоже хорош, но так, как вы посоветовали у меня меньше опыта) Поэтому использую его, чтобы запомнить лучше.
Единственное когда я выделяю много эл-тов на форме они как-то глючно выделяются. Выделяются меркерами хаотично мигая секунд 20. Так у всех? Оперативки вроде норм у меня для этого.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900256
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не сталкивался
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900263
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proне сталкивался
У вас сразу все выделяется? У меня медленно сначала один раз, потом будто по второму кругу начинают выделяться.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38900267
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я у себя реализовал вообще произвольные группы контролов на форме, что дает возможность их разом очистить, скрыть, запретить и т.п.
Причем, если контрол входит в две разных группы, одна из которых запрещена, вторая разрешена, то он останется запрещенным (ну или разрешенным, это зависит от политики групп)

ну это так, на будущее
...
Рейтинг: 0 / 0
Событие text1_Change
    #38906095
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему вылезает error- Type mismach? For each работает только до определенного числа?
Почти все текстбоксы почистило что нужно.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Private Sub Sbros_Click()
Dim Text As TextBox
 For Each Text In Me.Controls
    If Text.Tag = "" Then
      Text.Text = ""
    End If
  Next
...
Рейтинг: 0 / 0
Событие text1_Change
    #38906100
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стало быть, очередной контрол оказался не текстбоксом. Проверяй TypeName, как я показывал ранее
...
Рейтинг: 0 / 0
Событие text1_Change
    #38906167
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProСтало быть, очередной контрол оказался не текстбоксом. Проверяй TypeName, как я показывал ранее
Вот так выкрутился
Код: vbnet
1.
2.
3.
4.
dim Text as Control
  For Each Text In Me.Controls
       If TypeOf Text Is TextBox And Text.Tag = "" Then Text.Text = ""
  Next
...
Рейтинг: 0 / 0
Событие text1_Change
    #38906190
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProСтало быть, очередной контрол оказался не текстбоксом
Я же указал что для каждого textbox из всех контролов
Почему он затрагивает другие контролы?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Private Sub Sbros_Click()
Dim Text As TextBox
 For Each Text In Me.Controls
    If Text.Tag = "" Then
      Text.Text = ""
    End If
  Next
...
Рейтинг: 0 / 0
Событие text1_Change
    #38906207
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronЯ же указал что для каждого textbox из всех контроловНет, не сказал. Ты сказал ему перебрать ВСЮ коллекцию Me.Controls, а в ней не только текстбоксы. Я приводил ПРАВИЛЬНЫЙ код.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38906220
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProЯ приводил ПРАВИЛЬНЫЙ код.
Да я же написал , что разобрался. Просто хотел понять почему так произошло
...
Рейтинг: 0 / 0
Событие text1_Change
    #38906224
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronПросто хотел понять почему так произошлопотому что For Each перебирает всю коллекцию и никак по-другому
...
Рейтинг: 0 / 0
Событие text1_Change
    #38906245
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proпотому что For Each перебирает всю коллекцию и никак по-другому
Теперь понял, спасибо
...
Рейтинг: 0 / 0
Событие text1_Change
    #38907187
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте уважаемые, есть очень интересный для меня вопрос.
Можно ли целенаправленно запрещать выполнение событий? А конкретно -
При выполнении Text_LostFocus в определенный момент меняется значение Text.text и сразу переходит на процедуру Text_Change. Очень интересно можно ли в VB6 прописать - НЕ ПЕРЕХОДИТЬ на опр. процедуру.
...
Рейтинг: 0 / 0
Событие text1_Change
    #38907210
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim DisableChangeEvent As Boolean

Private Sub Text_Change()

If DisableChangeEvent Then Exit Sub
...
...

End Sub



Код: vbnet
1.
2.
3.
DisableChangeEvent = True
Text.Text = "fff"
DisableChangeEvent = False
...
Рейтинг: 0 / 0
Событие text1_Change
    #38907212
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно такие вещи я также упаковываю в юзерконтрол.
То есть делаю два события - Change оставляю как есть, а Changed - только при изменении контрола пользователем, при программном изменении свойства Changed не возникает
...
Рейтинг: 0 / 0
Событие text1_Change
    #38907259
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНет, именно по именам нужно, тогда
Код: vbnet
1.
2.
3.
For i = 1 to 12
   me.controls("DAN_" & 1).text=""
next


если поля имеют имена DAN_1, DAN_2,.... DAN_12
...
Рейтинг: 0 / 0
Событие text1_Change
    #38907286
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim DisableChangeEvent As Boolean

Private Sub Text_Change()

If DisableChangeEvent Then Exit Sub
...
...

End Sub




Код: vbnet
1.
2.
3.
DisableChangeEvent = True
Text.Text = "fff"
DisableChangeEvent = False


Крутейшая тема, спасибо большое!!!
...
Рейтинг: 0 / 0
Событие text1_Change
    #38907290
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755
Код: vbnet
1.
2.
3.
For i = 1 to 12
   me.controls("DAN_" & 1).text=""
next



если поля имеют имена DAN_1, DAN_2,.... DAN_12
Спасибо!) Только наверно так?
Код: vbnet
1.
2.
3.
For i = 1 to 12
   me.controls("DAN_" & i).text=""
next
...
Рейтинг: 0 / 0
58 сообщений из 58, показаны все 3 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Событие text1_Change
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]