Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Как из дочерней формы управлять объектом Добавлено: 12.08.11 13:31  

Автор вопроса:  Валерий
День добрый!Помогите решить проблему:
есть главная форма (frmMain)на которой находится меню. Изначально оно недоступно.После запуска проекта появляется дочерняя форма (frmPassvord)в которую надо ввести пароль.При совпадении надо из дочерней изменить свойство MenuItem1.Enabled на true. Я раньше работал с VB6, там было всё просто , а сейчас хочу перейти на VB.NET. Подскажете решение.
Вот главная форма

Public Class frmMain
    Inherits System.Windows.Forms.Form
    Public MyfrmPassvord As New frmPassvord
    'загрузка основной формы
    Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '
        MyfrmPassvord.MdiParent = Me
        MyfrmPassvord.Show()

    End Sub
End Class

Ответить

  Ответы Всего ответов: 14  

Номер ответа: 1
Автор ответа:
 Dan



ICQ: 609276007 

Вопросов: 24
Ответов: 195
 Профиль | | #1 Добавлено: 12.08.11 15:02
  1. If password="12345" then
  2. frmmain.menuitem1.enabled=true
  3. End If

Какие проблемы?

Ответить

Номер ответа: 2
Автор ответа:
 Валерий



Вопросов: 2
Ответов: 12
 Профиль | | #2 Добавлено: 12.08.11 16:34
В VB6 никаких проблем.
А VB.NET эта строка выдает ошибку
  1. frmMain.MenuItem2.enabled = True

"Для ссылки на член, не используемый совместно, требуется ссылка на объект"

Ответить

Номер ответа: 3
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #3 Добавлено: 13.08.11 00:11
  1. Me.MenuItem2.enabled = True

Ответить

Номер ответа: 4
Автор ответа:
 Валерий



Вопросов: 2
Ответов: 12
 Профиль | | #4 Добавлено: 13.08.11 17:10
  1. Me.MenuItem2.enabled = True

После набора
Me.

В предложенном списке нет MenuItem2.
Усли напрямую вставить выражение, то возникает ошибка:
"MenuItem2" не является членом "frmPassford"

Ответить

Номер ответа: 5
Автор ответа:
 Dan



ICQ: 609276007 

Вопросов: 24
Ответов: 195
 Профиль | | #5 Добавлено: 13.08.11 17:14
так набирай сначала меню а потом Item2 сам появится!

Ответить

Номер ответа: 6
Автор ответа:
 Dan



ICQ: 609276007 

Вопросов: 24
Ответов: 195
 Профиль | | #6 Добавлено: 13.08.11 17:20
кликни item в визуале и посмотри имя, дальше пиши me.<Имя>.enabled=true

Ответить

Номер ответа: 7
Автор ответа:
 Валерий



Вопросов: 2
Ответов: 12
 Профиль | | #7 Добавлено: 13.08.11 18:07
так набирай сначала меню а потом Item2 сам появится!

Не появляется

кликни item в визуале и посмотри имя, дальше пиши me.<Имя>.enabled=true


На frmMain (родительская форма) добавлено MainMenu1, свойство Modifiers=Public (видимость объекта), созданы меню MenuItem1,MenuItem2,MenuItem3.

frmPassword (дочерняя).

Вверху я показал способ вызова дочерней формы из родительской.
Может воспользоваться другим каким нибудь, чтобы можно было обратиться к объкту на родительской форме?
Предложенные варианты вызывают ошибки

Ответить

Номер ответа: 8
Автор ответа:
 Fatty



Вопросов: 0
Ответов: 55
 Профиль | | #8 Добавлено: 13.08.11 22:11
Посмотри здесь:
http://support.microsoft.com/kb/190634
работает как часы - сейчас сам проверил

Ответить

Номер ответа: 9
Автор ответа:
 Валерий



Вопросов: 2
Ответов: 12
 Профиль | | #9 Добавлено: 14.08.11 11:01
Согласен всё работает.
Только :
Choose Project, Add MDI Form, to add an MDI form
это в VB6

Ответить

Номер ответа: 10
Автор ответа:
 Fatty



Вопросов: 0
Ответов: 55
 Профиль | | #10 Добавлено: 14.08.11 11:19
Я четко проверил в VS 2010 .NET Framework 3.5 Windows 7
без проблем
Добавил по текстбоксу в обе формы
В подчиненной:
Public Class frmChild

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

        MDIParent1.Show()
        MDIParent1.TextBox1.Text = Me.TextBox1.Text
        Me.Hide()
    End Sub
    Public Sub MyShow()
        Me.TextBox1.Text = MDIParent1.TextBox1.Text
        Me.Show()

    End Sub
End Class


В главной:
  Private Sub mnuShow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuShow.Click
        frmChild.MyShow()
    End Sub

все тики-так....

Ответить

Номер ответа: 11
Автор ответа:
 Валерий



Вопросов: 2
Ответов: 12
 Профиль | | #11 Добавлено: 14.08.11 13:43
Я работаю VS.NET 2003.
Прошу прощения за назойливость, но у меня не работает.Помогите пожалуйста разобраться.

Создал родительскую форму MDIParent1, добавил на неё MainMenu1, создал mnuShow, добавил TextBox1, добавил код
  1.  
  2. Public Class MDIParent1
  3.     Inherits System.Windows.Forms.Form
  4.     Private Sub mnuShow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuShow.Click
  5.         frmChild.MyShow()
  6.     End Sub
  7. End Class



Под строкой frmChild.MyShow() появилось сообщение об ошибке :
Для ссылки на член, не используемый совместно, требуется ссылка на объект


Создал дочернюю ворму frmChild, добавил TextBox1, добавил Button1, добавил код
  1.  
  2. Public Class frmChild
  3.     Inherits System.Windows.Forms.Form
  4.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  5.  
  6.         MDIParent1.Show()
  7.         MDIParent1.TextBox1.Text = Me.TextBox1.Text
  8.         Me.Hide()
  9.     End Sub
  10.     Public Sub MyShow()
  11.         Me.TextBox1.Text = MDIParent1.TextBox1.Text
  12.         Me.Show()
  13.  
  14.     End Sub
  15. End Class



Здесь такаяже ошибка под строкой MDIParent1.Show()

Ответить

Номер ответа: 12
Автор ответа:
 Fatty



Вопросов: 0
Ответов: 55
 Профиль | | #12 Добавлено: 14.08.11 17:15
Единственная разница с примером то, что ты говоришь:
"создал дочернюю форму"
В примере она не создается а переименовывается
форма по умолчанию Form1 в frmChild,
остальное то же самое
Больше никаких идей нет извини

Ответить

Номер ответа: 13
Автор ответа:
 Валерий



Вопросов: 2
Ответов: 12
 Профиль | | #13 Добавлено: 14.08.11 18:15
Спасибо всем кто откликнулся.
Я пробовал писать программу на Visual Studio NET 2003. Она у меня полностью русифицирована с MSDN.

Только что попробовал создать этот проэкт в Visual Studio 2010 и не возникло никаких проблем
  1.  
  2. Public Class frmChild
  3.  
  4.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  5.         MDIParent1.TextBox1.Text = "Привет с frmChild!"
  6.     End Sub
  7. End Class



Не понимаю какие проблемы с Visual Studio NET 2003.
Прийдется работать с VS 2010.

Ответить

Номер ответа: 14
Автор ответа:
 Валерий



Вопросов: 2
Ответов: 12
 Профиль | | #14 Добавлено: 14.08.11 18:25
Спасибо всем кто откликнулся.
Я пробовал писать программу на Visual Studio NET 2003. Она у меня полностью русифицирована с MSDN.

Только что попробовал создать этот проэкт в Visual Studio 2010 и не возникло никаких проблем
  1.  
  2. Public Class frmChild
  3.  
  4.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  5.         MDIParent1.TextBox1.Text = "Привет с frmChild!"
  6.     End Sub
  7. End Class



Не понимаю какие проблемы с Visual Studio NET 2003.
Прийдется работать с VS 2010.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам