Imports System.Data Imports System.Net Imports System.Net.Sockets Imports System.Text Imports System.IO.Ports Imports System.Data.SqlClient Imports System.Threading Public Class Form1 Dim x As New plc_input Public Property waiting As Boolean Get Return waiting End Get Me.Label1.Text = "AZERTY" Set(ByVal value As Boolean) End Property Private Sub get_status_Click(sender As Object, e As EventArgs) Handles get_status.Click x.enable=true End Sub End Class Public Class plc_input Dim y As New Form1 Public Property id As Int16 Private _press As Boolean = False Public Property enable As Boolean Get Return enable End Get Set(ByVal value As Boolean) y.Label1.Text = "AZERTY" y.waiting = True End Set End Property End Class
un label qui contient une seconde class.ça en winform, c'est impossible. Un label ne peut contenir qu'une string et une string n'est pas dérivable donc en aucun cas un label winform ne peut contenir une class
Depuis cette seconde class je n'arrive pas à changer la propriété text de ce même label.
Public Property enable As Boolean Get Return enable End Get Set(ByVal value As Boolean) y.Label1.Text = "AZERTY" y.waiting = True End Set End Property
Public Property waiting As Boolean Get Return waiting End Get Me.Label1.Text = "AZERTY" Set(ByVal value As Boolean) End Property
Me.Label1.Text = "AZERTY"n'a rien à faire là.
dans ce formulaire j'ai ma class form1 et une seconde class que j'ai crée "plc_input", ça pour moi c'est une classe imbriquée, déjà, il est extrêment rare d'avoir une bonne raison d'écrire une classe imbriquée.
Public Class Chapeau 'du code de Chapeau Public Class Imbriquee 'du code de Imbriquee End Class 'éventuellement encore du code de Chapeau End Class
Public Property id As Int16, si tu codes pour Unity, ou si tu as expressément besoin de limiter la valeur maximale de ID, tu n'as pas le choix.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPublic Class frmJulien Private lePrix As Double Private dataJulien As DataJulien Private Sub frmJulien_Load(sender As Object, e As EventArgs) Handles MyBase.Load SetPrixJulien(0) dataJulien = New DataJulien(Me) 'on crée une instance de DataJulien qui est liée à cette instance de formulaire End Sub ''' <summary> ''' Avec un Setter ''' </summary> ''' <param name="Prix"></param> Public Sub SetPrixJulien(Prix As Double) If Prix < 0 Then Throw New Exception("Le prix doit être positif") Else lePrix = Prix lblPrixJulien.Text = String.Format("Le prix affiché est de {0:N2} €", lePrix) End If End Sub ''' <summary> ''' Avec une propriété ''' </summary> ''' <returns></returns> Public Property Prix As Double Get Return lePrix End Get Set(value As Double) If value < 0 Then Throw New Exception("Le prix doit être positif") Else lePrix = value lblPrixJulien.Text = String.Format("Le prix affiché est de {0:N2} €", lePrix) End If End Set End Property Private Sub butSetter_Click(sender As Object, e As EventArgs) Handles butSetter.Click dataJulien.MetUnPrixParSetter() End Sub Private Sub butPropriete_Click(sender As Object, e As EventArgs) Handles butPropriete.Click dataJulien.ModifieUnPrixParPropriete() End Sub Private Sub butNegatif_Click(sender As Object, e As EventArgs) Handles butNegatif.Click dataJulien.TestUnPrixNegatif() End Sub End Class
Public Class DataJulien Private leFormulaire As frmJulien ''' <summary> ''' Dans le constructeur on fait passer la référence au formulaire qui existe déjà ''' </summary> ''' <param name="Formulaire"></param> Public Sub New(Formulaire As frmJulien) leFormulaire = Formulaire End Sub Public Sub MetUnPrixParSetter() leFormulaire.SetPrixJulien(12.3456) End Sub Public Sub ModifieUnPrixParPropriete() leFormulaire.Prix = leFormulaire.Prix + 2.65 End Sub Public Sub TestUnPrixNegatif() leFormulaire.SetPrixJulien(-1) End Sub End Class
Public Sub New(Formulaire As frmJulien) leFormulaire = Formulaire End Sub