Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Взаимодействие между элементами форм 
:(
    Опции темы
Гость_Leff
Дата 20.11.2005, 07:40 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Чувствую себя полным дураком smile ! Я не могу понять каким образом имея, например, две формы, можно в текстовое поле одной формы (активной) получить значение из текстового поля второй формы.

Что бы Вы приблизительно поняли о чем я говорю, могу сказать, что в Delphi это можно было сделать следующим образом. По какому-либо событию формы 2, выполнялась следующая строка:

Код

TextBox1.Text:=form2.TextBox1.Text;


Надо ли для выполнения этого в VB.NET в каждом класе форм создавать своиство, при помощи которого будет осуществляться доступ к её элементам (из других класов) smile smile
  Вверх
Exception
Дата 20.11.2005, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 18
Всего: 186



Да, это довольно досадная проблема.. Правда в VB .NET 2.0 она уже решена...
А так - создай новый модуль, а в нем напиши:
Код

Module Main
Public myform1 As New Form1(),
myform2 As New Form2()
Sub Main()
Application.Run(myform1)
End Sub
End Module

Теперь ты можешь показать форму 2 так:
Код

myform2.ShowDialog()

, не заботясь о ее создании.
Обратиться к текстбоксу можно также:
Код

MsgBox(myForm2.mytxt.Text))

PM   Вверх
Гость_Leff
  Дата 21.11.2005, 11:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











И на том спасибо, хотя решение конечно не очень красивое. А всё таки, каким же образом эта проблема решена в VB.NET 2.0, да и что именно ты подразумеваешьпод этим - VS 2005.
  Вверх
Exception
Дата 21.11.2005, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 18
Всего: 186



VS 2005 = Visual Studio 2005.
В VB .NET 2.0 появилось пр-во имен My, в нем есть до кучи полезных вещей, в т.ч. и коллекция форм приложения. О нововведениях можно почитать на http://msdn.microsoft.com.
PM   Вверх
Guest
  Дата 21.11.2005, 20:16 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Обязательно зайду.

(!ув. Администрация портала, не ругайтесь, чтовопрос не совсем в своей теме!). Ещё с ходу вопрос, не знает ли кто-нибудь в VB.NET аналога дельфевской процедурки SendMessage? Как я понимаю с её помощью можно посылать "сообщения" (команды) окнам.

На странице Light Alloy (http://www.softella.com/ - мой любимый проигрыватель видео) есть пример процедуры при помощи которой можно управлять им. Однако пример на Delphi:

Код

procedure LightAlloyFullScreen;
var
  Wnd:HWND;
begin
  Wnd:=FindWindow('LightAlloyFront',NIL);
  if (Wnd<>0) then
    SendMessage(Wnd,WM_LACMD,LAC_WINDOW_FULLSCREEN,0);
end;


Я уверен, что то же самое можно проделать и в VB.NET, но как... smile Мои попытки закончились на подключении к процессу.
  Вверх
Exception
Дата 21.11.2005, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 18
Всего: 186



Просто объяви нужные API и пользуй..
Код

Private Declare Auto Function FindWindow'описание ищи отдельно

PM   Вверх
Novator
  Дата 22.11.2005, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 21.11.2005

Репутация: нет
Всего: нет



Что именно мне это даст? Мне интересен не FindWindow, а SendMessage.

Это сообщение отредактировал(а) Novator - 22.11.2005, 00:32
PM MAIL   Вверх
Exception
Дата 22.11.2005, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 18
Всего: 186



Ну и его объяви.. Какая проблема? Описание есть в том же MSDN
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0482 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.