Avatar billede agerled Nybegynder
07. oktober 2005 - 21:04 Der er 9 kommentarer og
1 løsning

Forklaring på småting

Hej kan nogen give mig en kort forklaring på følgende erklæringer og evnt forskel på dem...??

1. Dim Withevents
2. Friend Withevents
3. Friend
4. Private
5. Protected friend
6. Public shared

evnt hvad der ellers findes af "almidelige" erklæringer og hvad de bruges til....

Har lidt svært ved at finde rundt i hvor det er mest hensigtsmæssigt at bruge de forskellige...
Avatar billede arne_v Ekspert
07. oktober 2005 - 21:06 #1
private = adgang for klassen
protected = adgang for klassen + subklasser
public = adgang for alle

shared = kun en delt forekomst mellem alle instanser af klassen (i C# hedder det static)
Avatar billede arne_v Ekspert
07. oktober 2005 - 21:10 #2
friend = adgang fra samme dll/exe
protected friend = adgang fra samme dll/exe + subklasser

friend hedder internal i C#
Avatar billede arne_v Ekspert
07. oktober 2005 - 21:12 #3
Avatar billede agerled Nybegynder
07. oktober 2005 - 21:21 #4
ok. HVis jeg nu har en panel i min Mainform som jeg vil kunne tilføje usercontroller i fra alle steder i min application. Hvordan skulle jeg så definere den?
Avatar billede arne_v Ekspert
07. oktober 2005 - 21:22 #5
Nemmest:

Public Shared

men de objektorientede vil grille dig over en sagte ild som straf !

Det bør gøres på pænere måder.
Avatar billede agerled Nybegynder
07. oktober 2005 - 21:25 #6
kan du give et eksempel på den pæne måde :-)
Avatar billede arne_v Ekspert
07. oktober 2005 - 21:41 #7
nu er jeg absolut ikke skrap til GUI

en måde er at sende en refernce til formen med rundt til de objekter som skal
bruge formen

her kommer et simpelt eksempel:

Imports System
Imports System.Drawing
Imports System.Windows.Forms

Namespace E

    Public Class MainForm
    Inherits Form
        Private button1 As Button
        Private textBox1 As TextBox

        Public Sub New()
            InitializeComponent
        End Sub

        Private Sub InitializeComponent()
            textBox1 = New TextBox
            button1 = New Button
            SuspendLayout
            textBox1.Multiline = True
            textBox1.Location = New Point(50, 50)
            textBox1.Size = New Size(200, 50)
            button1.Location = New Point(50, 150)
            button1.Size = New Size(200, 50)
            button1.Text = "Åben sub form"
            AddHandler button1.Click, AddressOf Button1Click
            ClientSize = New Size(300, 250)
            Controls.Add(button1)
            Controls.Add(textBox1)
            Text = "Main Form"
            ResumeLayout(False)
        End Sub

        Public ReadOnly Property TB() As String
            Get
                Return textBox1.Text
            End Get
        End Property

        Sub Button1Click(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim sf As SubForm = New SubForm(Me)
            sf.ShowDialog
        End Sub
    End Class

    Public Class SubForm
    Inherits Form
        Private mf As MainForm
        Private textBox1 As TextBox

        Public Sub New(ByVal mf As MainForm)
            Me.mf = mf
            InitializeComponent
        End Sub

        Private Sub InitializeComponent()
            textBox1 = New TextBox
            SuspendLayout
            textBox1.Multiline = True
            textBox1.Location = New Point(50, 50)
            textBox1.Size = New Size(200, 50)
            textBox1.Text = mf.TB
            ClientSize = New Size(300, 150)
            Controls.Add(textBox1)
            Text = "Sub Form"
            ResumeLayout(False)
        End Sub
    End Class

    Public Class TestClass

        <STAThread()> _
        Public Shared Sub Main(ByVal args As String())
            Application.Run(New MainForm)
        End Sub
    End Class
End Namespace
Avatar billede agerled Nybegynder
07. oktober 2005 - 21:47 #8
Det kigger jeg lige lidt på. tak for hjælpen. Læg et svar.

Kan du lige i farten svare på hvad det er suspendlayout og resumelayout gør og hvor det oftest ruges..?
Avatar billede arne_v Ekspert
07. oktober 2005 - 21:48 #9
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester