Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
-1 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 69

Сохранить значение TextBox c одной формы при работе на другой

26.02.2019, 09:37. Показов 1768. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго дня! Заранее извиняюсь за корявое объяснение проблемы! Собираю небольшую программку и возникла такая проблема: при нажатии на форме1 батона1 происходит переход на другую форму2, где требуется ввести в TextBox значение. Далее при нажатии на батон ОК на форме2 происходит возврат на форму1, и уже тут по нажатию на батон2 должно выполняться вычисление по определённому алгоритму с использованием значения, введённого на форме2, однако оно не сохраняется в памяти. Подскажите, как решить подобную проблему?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.02.2019, 09:37
Ответы с готовыми решениями:

При нажатии на кнопку одной формы, что-либо записывается в TextBox другой формы
Я хочу чтобы нажав на кнопку своей второй формы, какой то текст записался в поле первой формы помогите пожалуйста: private void...

Передать ID с textBox одной формы на textBox другой
Добрый день! Не могу понять, подскажите пожалуйста, у меня есть форма. На форме есть textBox "UserID". К этому полю textBox есть...

Сохранить значения выделеной строки в DBGrid одной формы, и перенести их в TEdit -ы другой формы
Привет. Помогите пожалуйста я уже незнаю что делать. У меня после заданного поиска выделятся строчка в DBGrid (подключена база через ADO)...

14
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
26.02.2019, 12:47
Цитата Сообщение от tomhardy96 Посмотреть сообщение
на батон ОК на форме2 происходит возврат на форму1
...значения, введённого на форме2, однако оно не сохраняется в памяти.
А что с формой 2? Скрывается, уничтожается, выгружается?
Как вы обращаетесь к значению с формы 2?
Примерный код тут покажите, чтобы не гадать, где у вас ошибка.
0
-1 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 69
26.02.2019, 13:52  [ТС]
На форме 1 нажимаю батон:
Visual Basic
1
2
3
4
Private Sub mnuOdinItem_Click()
Form3_OneElement.Show
 
End Sub
Далее в TextBox ввожу значение, нажимаю баттон ОК:
Visual Basic
1
2
3
4
Private Sub cmd_Form3_OK_Click_Click()
Form3_OneElement.Hide
Form2_NewProject.Show
End Sub
Вернувшись на форму 1, нажимаю баттон, выполняющий действие с текстовым файлом:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub cmd_Form2_Delete_Click()
Dim F As Long
    Dim Fn As String
    Dim MyText As String
 
 
Form2_Text1.Text = ""
F = FreeFile
Fn = "E:\example.txt"
 
Open Fn For Input As #F
Do Until EOF(F)
Line Input #F, MyText
If Not MyText Like Form3_Text1.Text Then
    Form3_Text1.Text = Form3_Text1.Text & MyText & vbCrLf
    End If
Loop
Close #F
 
Open Fn For Output As #F
Print #F, Form2_Text1.Text
 
Close #F
End Sub
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
26.02.2019, 19:35
Цитата Сообщение от tomhardy96 Посмотреть сообщение
использованием значения, введённого на форме2, однако оно не сохраняется в памяти.
У вас там обнуляется значение текстового поля.
Visual Basic
1
Form2_Text1.Text = ""
0
-1 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 69
27.02.2019, 09:14  [ТС]
Pro_grammer, обнуляется значение TextBox, которое отвечает за совсем другое действие. В него записывается результат выполнения записи. Это совсем другой TextBox
0
1104 / 480 / 33
Регистрация: 05.07.2018
Сообщений: 1,870
Записей в блоге: 7
27.02.2019, 10:13
Уважаемый tomhardy96,
я бы не стал использовать текстовое поле в качестве переменной.
Лучше введите глобальную строковую переменную и сохраните в
ней значение вашего текстового поля. Вот уж это никуда не пропадет.
0
-1 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 69
27.02.2019, 10:36  [ТС]
нтч, скорее я из-за своего незнания столкнулся с проблемой, когда я сохраняю в переменной значение текстового поля, а потом не могу использовать это значение в функции Like для основной работы моего кода. К примеру :
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub CMD1_Click()
'Предварительно записал в Textbox1 число, допустим 5
Dim a As String
a = Text1.Text ' На этом этапе введённое значение успешно записывается в переменную
....
' Далее мне нужно использовать значение переменной a в таком контексте:
If Not MyText Like "*id=""a""*" Then
    Text3.Text = Text3.Text & MyText & vbCrLf
    End If
' Моих знания в работе со строковыми переменными пока недостаточно, а как грамотно загуглить этот вопрос не представляю
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
27.02.2019, 11:58
Цитата Сообщение от tomhardy96 Посмотреть сообщение
Это совсем другой TextBox
И где он в вашем представленном коде?
0
-1 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 69
27.02.2019, 14:20  [ТС]
Pro_grammer, Form3_Text1.Text - это текстбок на второй форме, в которой я ввожу нужное значение.
А Form2_Text1.Text - это текстбокс на первой форме, в который будет выводиться результат моей операции с текстовым файлом. Эти боксы никак не взаимосвязаны
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
27.02.2019, 16:11
Цитата Сообщение от tomhardy96 Посмотреть сообщение
Form3_Text1.Text - это текстбок на второй форме, А Form2_Text1.Text - это текстбокс на первой форме
Ну что, логично
А как называется вторая форма? Form3 или ещё как? В любом случае, попробуйте тут написать полное название. С точкой.
По шаблону:
Visual Basic
1
If Not MyText Like ИмяФормы.Form3_Text1.Text Then
Добавлено через 2 минуты
И вообще, если вы обращаетесь к элементам управления с другой формы, то всегда указывайте имя этой формы перед элементом!
1
-1 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 69
28.02.2019, 09:39  [ТС]
Pro_grammer, спасибо за совет, изначально сам намудрил с названиями форм и текстобоксов. Но я по прежнему не решил локальной проблемы: алгоритм работает, если сравнивать просто введённое текстовое значение значение, а как считывать введённое число в подобном контексте я не знаю:
Visual Basic
1
2
If Not MyText Like "*id=""21""*" Then
' Где вместо ""21"" нужно использовать число из textbox
Бэйсик просто отказывается определять такую сложную конструкцию
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
28.02.2019, 11:34
Цитата Сообщение от tomhardy96 Посмотреть сообщение
такую сложную конструкцию
Что там сложного?
Можно вначале присвоить переменной значение вашего Текста
Visual Basic
1
fTxt$ = ИмяФормы.Form3_Text1.Text
потом эту переменную вставить в конструкцию:
Visual Basic
1
2
fTxt$ = ИмяФормы.Form3_Text1.Text
If Not MyText Like "*id=" & fTxt$ & "*" Then
Или сразу значение текстового поля в конструкцию

Visual Basic
1
If Not MyText Like "*id="  &  ИмяФормы.Form3_Text1.Text  & "*" Then
Я не уверен с вашими экранирующими кавычками, и сколько их надо?
Советую чтобы не путаться, вместо экранирующих кавычек писать & Chr(34) &
0
-1 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 69
28.02.2019, 11:43  [ТС]
Pro_grammer, вы правы, дело было в неправильно обозначенных кавычках, заменил на & и значение начало считываться. Но, видимо, Бейсик не видит между выражениями соответствия по-прежнему, условие в коде выполняется неправильно и значение, удовлетворяющее строке из текстового файла, продолжает записываться в Textbox
Visual Basic
1
2
3
4
5
6
7
8
9
a = Form3_OneElement.Form3_Text1.Text
Open Fn For Input As #F
Do Until EOF(F)
Line Input #F, MyText
If Not MyText Like "*id=" & a & "*" Then
    Form2_NewProject.Form2_Text2.Text = Form2_NewProject.Form2_Text2.Text & MyText & vbCrLf
    End If
Loop
Close #F
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
28.02.2019, 14:50
Цитата Сообщение от tomhardy96 Посмотреть сообщение
не видит между выражениями соответствия по-прежнему
Смотрите. Вот это выражение
Like "*id=""21""*"
и вот это выражение
а="21"
"*id=" & a & "*"

Это разные вещи.
Во втором случае получится так
"*id=21*"
Если тут ""21"" двойные кавычки имеют значение, то надо их дописать.
Visual Basic
1
If Not MyText Like "*id=""" & a & """*" Then
1
-1 / 0 / 0
Регистрация: 31.10.2018
Сообщений: 69
01.03.2019, 09:47  [ТС]
Pro_grammer, спасибо за подсказку. Проблема была решена удалением лишнего пробела после знака = в коде , плюс вынес выражение для сравнения в отдельную глобальную переменную и проводил сравнение уже с ней.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.03.2019, 09:47
Помогаю со студенческими работами здесь

Запись в Combobox одной формы из поля Textbox другой формы в Excel
Здравствуйте, уважаемые специалисты! Решаю задачу и выходит проблема. Есть лист "Должности" со столбцами Код и Наименование и...

Перенести данные из textBox одной формы в listBox другой формы
Помогите пожалуйста) Нужно из textBox одной формы перенести данные в listBox другой формы.

Передача данных с DataGridView одной формы в TextBox другой формы
Ребята, мне необходимо передать значения с выбранной строки Datagridview в textboxы второй формы, но есть одно но! Нужно чтобы доступ был...

Как из TextBoxа одной формы скопировать введённые данные в TextBox другой формы?
Здравствуйте. Помогите с вопросом, как из TextBoxа одной формы скопировать введённые данные в TextBox другой формы.Большое спасибо.

Из TextBox одной формы в ListView другой формы
В первой основной форме есть ListView с четырьмя столбцами и кнопка добавить. Когда нажимаешь добавить открывается вторая форма с четырьмя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru