Member 12860952 Ответов: 3

Переменная Vb.net пройти между форма form1 и Form2


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

У меня есть 2 текстовых поля и 1 кнопка для Form1, для Form2 у меня есть 1 метка и 1 кнопка.Мне нужно отправить значения d и b в Form2 label1


Коды Формы 1:


Private Sub Button1_Click(бывал отправитель как система.Объект, бывал е как система.EventArgs) Обрабатывает Button1.Щелчок

Dim a как десятичное число
Dim b как десятичное число
Дим с десятичными
Dim d как десятичное число

а = вал(элемент textbox1.Текст)
б = Вал(поле textbox2.Текст)

c = a + b * 5 / 8

d = c / 3
Ящик для сообщений.Показать(д)

Формы Form2.Показать()


Конец Подводной Лодки



формы Form2;

Private Sub Button1_Click(бывал отправитель как система.Объект, бывал е как система.EventArgs) Обрабатывает Button1.Щелчок

Этикетка 1.Текст = d + b

Конец Подводной Лодки

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

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

3 Ответов

Рейтинг:
20

Michael_Davies

Создайте свойство в Form2, которое сохранит значение, которое вы хотите передать в закрытую переменную, вызовите это свойство перед отображением формы.

В приведенном ниже примере Form1 будет означать Form2.Setb = b для установки значения b.

Public Class Form2
Private b As Decimal
Private d As Decimal

Public WriteOnly Property Setb As Decimal
        Set(value As Decimal)
            b = value
        End Set
    End Property
Public WriteOnly Property Setd As Decimal
        Set(value As Decimal)
            d = value
        End Set
    End Property

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Label1.Text = (d + b).ToString

End Sub


В качестве альтернативы создайте общедоступную глобальную переменную в Form2 и установите ее непосредственно.

Public Class Form2
Public b As Decimal ' You can access these from Form1 by Form2.b = ?
Public d As Decimal

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Label1.Text = (d + b).ToString

End Sub


Member 12860952

можете ли вы помочь мне с кодами, как это сделать?

Michael_Davies

Обновлен ответ, метод свойства-это лучший способ пойти.

Karthik_Mahalingam

5

Ralf Meier

Пожалуйста, измените свойства с ReadOnly на WriteOnly - в этом созвездии код не работает ... :(

Michael_Davies

Это у меня все слишком быстро на пальцах кончается, спасибо.

Ralf Meier

Пожалуйста , иногда это случается и со мной ...

Рейтинг:
2

Peter Leow

Существует несколько способов передачи данных между формами, читать Передача Данных Между Формами[^]


Рейтинг:
1

Ralf Meier

Это был бы самый простой (но для меня не самый лучший) способ :

On Form 1 :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 Form2.Label1.Text = (d + b).tostring

 End Sub


Лучше всего было бы работать со свойствами ...


Michael_Davies

Я уже набирал код, но послал ответ наполовину сделанный по ошибке,теперь полный ответ присутствовал.