2015-11-15 4 views
-1

Извините, если я говорю о полном noob или использую неправильную терминологию ниже.Использование классов в VB.net

Я пытаюсь создать класс в vb.net, из которого может наследовать несколько классов классов. Поэтому в «классе форм», если я говорю, получите список от пользователя, отправил его в «отдельный класс», чтобы заказать список, а затем передать список обратно классу формы для сохранения в базе данных или сделать все с помощью я продолжу.

До сих пор это то, что я сделал.

ниже сам класс без содержания

Public Class RandomClassName 

End Class 

Ниже то, что я сделал, чтобы «наследовать» из приведенного выше класса

Public Class frmStudentLogin 
Dim con As New OleDbConnection 
Dim ValidUserNameLength As Boolean 
Inherits RandomClassName 

Я хотел бы знать, как я бы создать код, позволяющий мне правильно наследовать и ссылаться на ссылку класса.

Спасибо.

+0

Я не совсем понимает, но если 'frmStudentLogin' это форма, это не может наследовать от любого класса, потому что он уже наследует от' Windows.System.Forms.Form'. Многоуровневое наследование не поддерживается. Ваша форма (ы) могла бы создавать и использовать объекты RandomClassName. Все ваше приложение может также использовать одну копию. На основе имени пользователя var вы можете искать класс пользователя для хранения пользовательских данных, проверки его и т. Д.? (В любом случае вы не должны делиться DBConnections таким образом - их нужно использовать и удалять каждый раз) – Plutonix

+0

Предлагаю вам взглянуть на [Концепции привязки данных в формах Windows .NET] (http: //www.codeproject. com/Articles/3665/Data-binding-concept-in-NET-windows-forms) или google для [привязки данных vb winforms] (https://www.google.ch/search?q=vb+winforms+data+ связывание). –

+0

Однако, хотя трудно оправдать знание того, что он хочет поделиться, он мог бы наследовать RandomClassName из формы и (после исправления синтаксической ошибки) он мог наследовать frmStudentLogin из RandomClassName – Steve

ответ

0

Непонятно, какую проблему вы пытаетесь решить с помощью этого подхода наследования, но наверняка вы могли бы наследовать класс формы (MyForm) из другого класса (BaseForm) при условии, что другой класс (BaseForm) наследуется от базы форм класс (форма).

В этот момент вы можете вставить в MyForm все функции, которые вы хотите поделиться между вашими формами, но иметь в виду, что в этом случае каждая форма будет зависеть от вашего класса BaseForm

Я будет показывать пример испытание в LINQPad

Sub Main 

    Dim x = New MyForm() 
    x.Show() 

End Sub 

Public Class MyForm 
    Inherits BaseForm 

    Public Sub New() 
     Dim txt = New TextBox() 
     txt.Multiline = True 
     txt.Height = 200 

     'Here you could use the GetAList from the BaseForm class 
     ' and use it to set the initial text for the multiline textbox. 
     txt.AppendText (String.Join(Environment.NewLine, GetAList().ToArray())) 
     Me.Controls.Add(txt) 
    End Sub 
End Class 


Public Class BaseForm 
    Inherits Form 

    ' Common methods required by your uplevel forms 
    Public Function GetAList() As List(Of String) 
     Dim a = New List(Of String)() From 
      {"ABC", "DEF", "GHJ"} 
     Return a 
    End Function 

End Class