Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  VB.Net: nochmal eigene Controls

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  VB.Net: nochmal eigene Controls (3669 mal gelesen)
KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

Beiträge: 2678
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
privat:
ab 2024 Onshape
seit 2025 SolidWorks for Makers

erstellt am: 31. Jul. 2008 08:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Das Erstellen von eigenen Controls ist ja eine feine Sache und klappt soweit auch ganz gut.

Ich habe aber noch ein kleines Problem.
Ich habe mir eigene Buttons gebaut, mit eigenen Grafiken, um von dem schnöden eintönigen Buttondesign wegzukommen.
Der Einfachheit halber habe ich dazu ein Label als Grundlage genommen, dem ich eben die nötigen Eigenschaften mitgebe, in erster Linie die passende Hintergrundgrafik.
Das funktioniert gut, nur mit der Größe beim Einfügen in die eigene Form habe ich noch Probleme, das Control bekommt standardmäßig immer die Einstellung "Autosize=True" und "Size = 123;19", obwohl ich in der Sub New des Controls Autosize=False und die Größe Size=142;100 gesetzt habe.

Auch in der Sub onCreate funktioniert das nicht, allerdings wird der Button dann zur Laufzeit richtig dargestellt.

Wie und wo muss ich das definieren, damit das Control beim Einfügen in die Formt die richtige Standardgröße bekommt?

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Moderator
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 02. Aug. 2008 13:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KMassler 10 Unities + Antwort hilfreich

Hallo Klaus,

welches Control meinst du? Dein Benutzerdefiniertes oder dein Label im benutzerdefinierten Control?
Im Benutzerdefinierten Control ist die Eigenschaft Autosize zu Beginn False, bei einem Label True (Damit der Text immer reinpasst).
Diese Eigenschaften kannst du jedoch im Designer anpassen. Das funktioniert wie in einem Formular.
Wenn du also alle Autosize Eigenschaften in deinem benutzerdefinierten Control mit allen Kinder-Controls (z.B. dein Label) auf False setzt müsste es klappen.
Damit die Größe der Kinder-Controls sich dynamisch an das benutzerdefinierte Control richtet solltest du die Anchor Eigenschaft dieser Kinder-Controls anpassen, damit sie an den Seiten des benutzerdefinierten Controls gebunden sind.

Ich hoffe ich habe das jetzt nicht zu umständlich erklärt.

------------------
Mfg Daniel

www.MySldWorks.de - SolidWorks Api Snippets

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 04. Aug. 2008 08:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von tbd:
...Ich hoffe ich habe das jetzt nicht zu umständlich erklärt.
Nix verstehn in Athen.

Also...

ich habe mir eine eigene Klasse für eigene graphische Buttons erstellt, mit Labels als Grundlage (Inherits Label). Soweit ich das beurteilen kann, kommt ein Label meinem Zweck am nächsten. Ich hätte es vielleicht auch mit einer Picturebox versuchen können, die hat aber keine Texteigenschaften, d.h. diese hätte ich erst selber erfinden müssen, inkl. TextAlign etc.
Die Buttons funktionieren ja auch gut- bis auf diese verflixte Eigenschaft Autosize. Die ist immer auf True, wenn ich den Button einsetze. Obwohl ich das in der Sub New des Controls auf False gesetzt habe.

Wenn ich den Button in eine Form einsetze und dort dann Autosize ausschalte, bekommt der Button die richtige Größe, wie in der Sub New definiert.

Code:
<ToolboxBitmap("C:\eigene Dateien-Massler\Visual Studio 2008\Controls\MyButtons\MyButtons\MyOvalButtons.ico")> _
Public Class MyOvalButton

    Inherits Label

    Sub New()
        Me.BackgroundImage = My.Resources.OvalButtonUp
        Me.AutoSize = False
        Me.Width = 146
        Me.Height = 101
        Me.Font = New Font("Arial", 12, FontStyle.Bold)
        Me.Text = "Button"
        Me.TextAlign = ContentAlignment.MiddleCenter
    End Sub


    Protected Overrides Sub OnMouseEnter(ByVal e As System.EventArgs)
        MyBase.OnMouseEnter(e)
        Me.BackgroundImage = My.Resources.OvalButtonOver
    End Sub

    Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
        MyBase.OnMouseLeave(e)
        Me.BackgroundImage = My.Resources.OvalButtonUp
    End Sub

    Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
        MyBase.OnMouseDown(e)
        Me.BackgroundImage = My.Resources.OvalButtonDown
    End Sub

    Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
        MyBase.OnMouseUp(e)
        Me.BackgroundImage = My.Resources.OvalButtonOver
    End Sub
End Class


------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Moderator
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 04. Aug. 2008 09:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KMassler 10 Unities + Antwort hilfreich

Guten Morgen Klaus,

das ist mal eine andere Vorgehensweise wie meine!

Ich würde mal behaupten das es daran liegt, das deine vererbte Klasse nicht gezielt initialisiert wird!
Wenn du dies in deiner Sub New erledigst und darauf die Werte anpasst müsste es gehen.

Code:
Public Sub New()
        MyBase.New()
        Me.AutoSize = False
        Me.Width = 146
        Me.Height = 101
        ...
End Sub

Wenn es dann immer noch nicht funktioniert versuche die Labeleigenschaften einfach direkt mit Hilfe vom MyBase zu verändern.

------------------
Mfg Daniel

www.MySldWorks.de - SolidWorks Api Snippets

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 04. Aug. 2008 10:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Sorry, geht auch nicht.

Die anderen Werte (Backgroundimage, Font, size) werden ja komischerweise richtig gesetzt.
Nur Me.Autosize und Me.Text werden ignoriert.

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz