2017-01-19 3 views
0

Я новичок в vb.net, так что простите меня, если это простой вопрос.Доступ к текстовому полю Form1 из формы2

У меня есть проект библиотеки классов, в котором представлены две формы окон Form1 и Form2. В основной библиотеке классов есть возможность открыть Form1. Кнопка Form1 запускает Form2. Основная часть кода находится в Form1, который я не хочу изменять, если могу помочь.

То, что я пытаюсь сделать, - это доступ к суб, который находится на Form1 из Form2. Этот sub изменяет значение текстового поля в Форме 1. Я не получаю никаких ошибок при компиляции проекта, однако ничего не происходит.

Вот пример

Form1:

Public Sub test() 

    Me.Panel1.Controls("Textbox1").Text = "Test" 

End Sub 

Form2:

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

    Dim MainForm As New Form1 
    Me.Close() 
    MainForm.test() 


End Sub 

Не слишком догнал того, как я построил его, я попытался около 20 различных вещи, и это то, где я сейчас.

Я попытался определить Form1 в подтесте(). Я попытался настроить sub test() для совместного использования. Я попытался закрыть Form2 и активировать Form1. Я попытался изменить свойство модификаторов в текстовом поле для публики. Я пробовал сделать Form1 родителем и Form2 ребенком (я честно не очень разбираюсь в MDI). Все эти результаты заканчиваются проектом, который будет компилироваться, но не даст мне никаких результатов. Мой код получает доступ к югу просто отлично, он не получит доступ к текстовому свойству текстового поля.

Любые предложения помогут. Я пытаюсь получить доступ к текстовым полям так, чтобы я мог их пропустить. Например: Me.Panel.Controls («Текстовое поле» & i) .Text = «Что-то». Также я хотел бы сохранить sub в классе для Form1, если смогу.

Любые предложения были бы замечательными!

+0

Почему вы хотите позвонить метод 'test' из' Form2'? Что в этом важно? – Bugs

+0

Чтобы получить доступ ко всем «TextBoxes» на вашей панели. 'Для каждого t В Panel.Controls.OfType (Of TextBox)()', то вы можете установить свойства 't'. – Bugs

ответ

0

Вы создаете совершенно новый Form1 в Form2, то есть проблема.

Просто используйте:

Call Form1.test()

Кстати, я думаю, что этот код в суб является более простой способ, чтобы установить текст:

Panel1.TextBox1.Text = "Test"

Смежные вопросы