Передача параметров. Самодельный MsgBox

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

asharky
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 22.06.2004 (Вт) 0:39
Откуда: Батоны-ларьки-поребрики...

Передача параметров. Самодельный MsgBox

Сообщение asharky » 15.12.2007 (Сб) 22:07

Не нашел в поиске, увы :(

Надо: из формы создать другую форму с парой кнопок YES/NO, по нажатию одной из которых вернуть результат родительской и почикать дочернюю.

Какие ключевые слова использовать для того, чтобы понять как мне параметры туда-сюда передвать? Глобальные переменные не предлагать :)
В культурной столице проститутки берут книгами...

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 16.12.2007 (Вс) 0:43

В коде формы-диалога впиши:
Код: Выделить всё
Me.AcceptButton = Button1
Me.CancelButton = Button2
Me.ShowInTaskbar = False
Me.MinimizeBox = False
Me.MaximizeBox = False
Me.StartPosition = FormStartPosition.CenterParent
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedDialog


Вызов из главной:
Код: Выделить всё
    Dim Ret As DialogResult = FormDialog1.ShowDialog()
    If Ret = Windows.Forms.DialogResult.OK Then
      MsgBox("ok")
    Else
      MsgBox("Cancel")
    End If


А вообще существует готовый шаблон для диалога.
Меню Project/Add Windows Form.../Dialog
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

1Steps
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 505
Зарегистрирован: 20.12.2006 (Ср) 0:50
Откуда: New York

Сообщение 1Steps » 16.12.2007 (Вс) 1:09

Положи на форму текст вокс и кнопку.
Код: Выделить всё
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim f As New MyMsgClass
        f.ShowDialog()
        Me.TextBox1.Text = f.Result.ToString
    End Sub

End Class


и

Код: Выделить всё
Public Class MyMsgClass

    Inherits System.Windows.Forms.Form

    Private components As System.ComponentModel.IContainer
    Friend WithEvents BtnNo As Button
    Friend WithEvents BtnYes As Button
    Public Result As DialogResult

    Sub New()
        InitializeComponent()
    End Sub

    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    Private Sub InitializeComponent()
        Me.BtnNo = New Button
        Me.BtnYes = New Button
        Me.SuspendLayout()
        '
        'Button1
        '
        Me.BtnNo.Location = New Point(193, 97)
        Me.BtnNo.Name = "Button1"
        Me.BtnNo.Size = New Size(75, 23)
        Me.BtnNo.TabIndex = 0
        Me.BtnNo.Text = "No"
        '
        'Button2
        '
        Me.BtnYes.Location = New Point(22, 97)
        Me.BtnYes.Name = "Button2"
        Me.BtnYes.Size = New Size(75, 23)
        Me.BtnYes.TabIndex = 1
        Me.BtnYes.Text = "Yes"
        '
        'Form1
        '
        Me.AutoScaleMode = AutoScaleMode.Font
        Me.ClientSize = New Size(290, 142)
        Me.Controls.Add(Me.BtnYes)
        Me.Controls.Add(Me.BtnNo)
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)

    End Sub

    Private Sub BtnNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNo.Click
        Result = Windows.Forms.DialogResult.No
        Me.Close()
    End Sub

    Private Sub BtnYes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnYes.Click
        Result = Windows.Forms.DialogResult.Yes
        Me.Close()
    End Sub

End Class
Удалена за ненадобностью.

asharky
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 22.06.2004 (Вт) 0:39
Откуда: Батоны-ларьки-поребрики...

Сообщение asharky » 16.12.2007 (Вс) 2:29

Огромное вам обоим спасибо!
В культурной столице проститутки берут книгами...

asharky
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 22.06.2004 (Вт) 0:39
Откуда: Батоны-ларьки-поребрики...

Сообщение asharky » 16.12.2007 (Вс) 11:39

А если мне в форме-потомке приспичит пароль ввести и в форму-родитель назад его вернуть для проверки? DialogResult уже не подойдёт ведь. Как тогда параметр назад передать?

И вообще: как между формами передавать произвольного типа параметры? Какие механизмы, кроме глобальных переменных?

В деталях можно не расписывать. Достаточно намекнуть на ключевые слова. Мне же не конкретный код нужен, а технология, а для этого придётся RTFM и т.д.

Ну и ещё мысль, возможно совсем не в кассу, но не судите строго. Вот тут Общие сведения об асинхронном программировании не то что мне нужно? Я пока ещё, переходя с ФОРТРАНА БЭСМ-6 на VB.NET 2005, с этой технологией не разобрался, хотя и понимаю, что она одна из ключевых в .NET. Не настал-ли момент разобраться, учитывая мои наивные вопросы выше по треду? Не есть-ли это хороший повод? В смысле применить технологию асинхронного программирования в деле передачи параметров между контролами туда-сюда?
В культурной столице проститутки берут книгами...

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 16.12.2007 (Вс) 14:33

В смысле применить технологию асинхронного программирования в деле передачи параметров между контролами туда-сюда?
Это не то. Контролы работают в одном потоке. )
А обратиться к переменным других форм можно к примеру так:
Код: Выделить всё
my.Forms.Form1.AnyPublicVar = AnyValue

И кстати, эта тема уже обглодана до костей. Читай форум.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

asharky
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 22.06.2004 (Вт) 0:39
Откуда: Батоны-ларьки-поребрики...

Сообщение asharky » 16.12.2007 (Вс) 15:13

Nord777 писал(а):
В смысле применить технологию асинхронного программирования в деле передачи параметров между контролами туда-сюда?
Это не то. Контролы работают в одном потоке. )
Ну слава богу :) Отложу изучение технологии на "после нового года".
Nord777 писал(а):А обратиться к переменным других форм можно к примеру так:
Код: Выделить всё
my.Forms.Form1.AnyPublicVar = AnyValue
И кстати, эта тема уже обглодана до костей. Читай форум.
Буду читать конечно. Хотя свой первоначальный вопрос я вроде как закрыл успешно.

Ещё раз спасибо большое.
В культурной столице проститутки берут книгами...


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 99

    TopList