Как использовать мой класс в другом классе в VB.NET - PullRequest
0 голосов
/ 08 июля 2011

Да, это действительно плохой вопрос, вероятно, который должен знать любой наполовину приличный программист VB.NET.Ну, я новичок в VB.NET, поэтому мне нужно немного помочь.

Я создал класс форм Windows вместе с другим классом, и его код таков:

Imports System.Windows.Forms

Public Class Form2

    Protected m_BlankValid As Boolean = True
    Protected m_ReturnText As String = ""

    Public Overloads Function ShowDialog( _
      ByVal TitleText As String, _
      ByVal PromptText As String, _
      ByVal DefaultText As String, _
      ByRef EnteredText As String, _
      ByVal BlankValid As Boolean) As System.Windows.Forms.DialogResult
        m_BlankValid = BlankValid
        Me.PromptLabel.Text = PromptText
        Me.Text = TitleText
        Me.Txt_TextEntry.Text = DefaultText
        Me.ShowDialog()
        EnteredText = m_ReturnText
        Return Me.DialogResult
    End Function

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
        If Me.Txt_TextEntry.Text = "" Then
            Me.OK_Btn.Enabled = m_BlankValid
        Else
            Me.OK_Btn.Enabled = True
        End If
    End Sub

    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Me.DialogResult = System.Windows.Forms.DialogResult.OK
        m_ReturnText = Me.Txt_TextEntry.Text
        Me.Close()
    End Sub

    Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
        m_ReturnText = ""
        Me.Close()
    End Sub
End Class

Очевидно, у меня есть немного графики в моем дизайне.

Чтобы вызвать мой класс, я хотел бы использовать следующий код:

Dim TextReturned As String = ""
Dim a As New InputBox
If a.ShowDialog("The Title", "The Prompt", "Default", TextReturned, False) = Windows.Forms.DialogResult.Cancel Then
    ' Cancel Pressed
    Beep()
Else
    '
End If

Моя ошибка в том, что тип 'InputBox' не определен.Как я могу сделать так, чтобы он был определен?

Спасибо,

Odinulf

Ответы [ 4 ]

2 голосов
/ 08 июля 2011

Если ваш код выше скопирован / вставлен из вашего фактического кода, ваш класс называется Form2, а не InputBox.Измените объявление класса в вашей пользовательской форме на Public Class InputBox

Если в приведенных выше фрагментах есть опечатка, это может изменить ситуацию.

1 голос
/ 08 июля 2011

Ваш код читает:

Dim a As New InputBox

, но класс определяется как:

Public Class Form2

Это означает, что ваш код должен читать:

Dim as New Form2()

примечание: в качестве альтернативы вы можете переименовать свой класс как: Public Class Form2

на

Public Class InputBox

0 голосов
/ 08 июля 2011

Ну, в соответствии с кодом, который вы разместили, ваш «InputBox» называется Form2 (имя класса). Измените это на InputBox, и оно должно работать.

0 голосов
/ 08 июля 2011

InputBox это не тип или класс, это метод. Например ...

InputBox("The Title", "The prompt") 'and any other parameters you need

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...