Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  VB.net Steuerelemente durchlaufen

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
Autor Thema:  VB.net Steuerelemente durchlaufen (5081 mal gelesen)
magoh87
Mitglied


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

Beiträge: 7
Registriert: 22.09.2011

CATIA V5 R18
Visual Studio 2010,
Visual Basic.NET

erstellt am: 22. Sep. 2011 16: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

Hi,
ich hab ein Problem. Wahrscheinlich ist es total simple, doch ich komm einfach nicht drauf.
Ich lese Daten aus Catia aus und kommt es zu dem problem. Die Form besteht aus einem TabControl mit mehreren Tabpages. Durch eine rekursive Schleife hat er mir alle Elemente gegeben. Nun aber will ich die namen von catia und meiner form vergleichen, jetzt schaff ich es aber nicht die werte von catia einzulesen. Kann mir da vielleicht jemand helfen? (Falls man mein Problem verstanden hat...)
Danke schonmal im Vorraus

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 22. Sep. 2011 18:36    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 magoh87 10 Unities + Antwort hilfreich

Servus
Willkommen im Forum. Bitte Sytemnfo ausfüllen.
Was willst du in Catia auslesen? Mit was willst du diese vergleichen? (ggf Screenshot und Code-Schnippsel)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

magoh87
Mitglied


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

Beiträge: 7
Registriert: 22.09.2011

CATIA V5 R18
Visual Studio 2010,
Visual Basic.NET

erstellt am: 23. Sep. 2011 11:01    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

Hey, danke für die Antwort. Bin neu hier, deswegen weiss ich noch nicht ganz wie das hier alles funktioniert.

Ich habe die Methode

Code:

Sub GetControl(ByVal ctrls As Control.ControlCollection)
    Dim c As Control
    For each c in ctrls
        ProcessControl(c.Controls)
    Next
End Sub

Damit kann ich alle Steuerelemete meiner Form durchlaufen.
Wie kann ich alle Steuerelemente, die ich jetzt gefunden hab, einer anderen Methode, der gleichen Klasse, übergeben? V.a. die Namen, weil ich diese auch später mit denen vergleichen, die ich in meinem CATIA Program habe. Der CATIA Aufruf mit deren Parts und dessen Eigenschaften hab ich.
Ich will jetzt die Namen der Parts, mit den Namen der Controls vergleichen und wenn eine Übereinstimmung gefunden ist soll der Wert oder Parameter von CATIA in das jeweilige Control eingefügt werden. Nur das schaff ich nicht... entweder greift es dann nur auf die Grundform, oder auf die Anzahl der TabPages. Und alles einzeln ansprechen wär ein immenser Aufwand, weil ich über 300 controls hab.

???

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 23. Sep. 2011 13:02    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 magoh87 10 Unities + Antwort hilfreich

Ich sehe keinen Fehler in der Methode.

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

magoh87
Mitglied


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

Beiträge: 7
Registriert: 22.09.2011

CATIA V5 R18
Visual Studio 2010,
Visual Basic.NET

erstellt am: 23. Sep. 2011 14:05    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

Ja, an dem code is eigentlich auch nix falsch...
Aber was ist hier dran falsch?

Code:
Public Sub Para_Get(ByVal ctrls As Control.ControlCollection, ByVal writePara As String, ByVal setPara As String)

       


        catpart = CATIA.ActiveDocument.Part
        Select Case setPara'Ansprechen des Parameterset für update
            '.
            '.
            '.
        End Select

        params = paramset.AllParameters
        On Error Resume Next
        Dim c As Control

        For i As Integer = 0 To params.Count                                          '
            ' pName ermitteln


            For Each c In ctrls
                For j As Integer = 0 To ctrls.Count
                    If c.Controls.Item(j).Name.ToString = pName Then

                        Select Case writePara                         
                            'controls werden gelesen und/oder verändert
                        End Select
                    End If

                Next
                Para_Get(c.Controls, writePara, setPara)
            Next

        Next
End Sub


Jetzt sagt er mir ich hab nur 9 steuerelemente wenn ich ctrls.count mache.. sollten aber um die 400 sein. er will einfach nicht in mein tabcontrol rein umd da dessen controls zu nehmen. was mach ich denn falsch??

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 23. Sep. 2011 14:17    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 magoh87 10 Unities + Antwort hilfreich

Hallo,

wie groß ist den i bzw. j?
Wenn du die Anzahl der Params oder ctrls in der Schleife änderst (ich weiß ja nicht, was Para_Get so treibt), ändert sich params.Count bzw. ctrls.Count nicht mit oder besser gesagt die Schleife interessiert sich nicht für die Änderung und wird beim Ursprünglichen Wert beendet. Jedenfalls ist das in VB6 so.

Ist das vielleicht dein Problem?

Gruß

------------------
tomtom1972

[Diese Nachricht wurde von tomtom1972 am 23. Sep. 2011 editiert.]

[Diese Nachricht wurde von tomtom1972 am 23. Sep. 2011 editiert.]

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

magoh87
Mitglied


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

Beiträge: 7
Registriert: 22.09.2011

CATIA V5 R18
Visual Studio 2010,
Visual Basic.NET

erstellt am: 23. Sep. 2011 14:43    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

Hey, danke für die Antwort.
params und ctrls sollten sich eigentlich nicht ändern. params tut es auch nicht und ctrls ist ja eine auflistung meiner steuerelemente in meiner form die sich eigentlich auch nciht ändern sollte. para_get ist eine methode, die zuerst alle parameter aus catia holt und diese dann in einer form anzeigt. das ist dann quasi die grundform. der user hat dann die möglichkeit die werde zu ändern und damit wird dann das catiapart aktualisiert, dementsprechend verändert.
liegt das problem vielleicht da dran, dass ich ein tabcontrol drin hab und der da nicht reinhüpft? brauch ich da vielleicht noch ne schleife. also in vba ist das auch kein problem, nur mit vb.net tu ich mri da echt schwer...

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 23. Sep. 2011 15:46    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 magoh87 10 Unities + Antwort hilfreich

Servus
Was mich an deinem Code wundert (obwohl ich noch nicht so ganz durchsteige):
- ist params eine Collection oder ein Array (Collections fangen mit 1 an)
- ist unter dem Object ctrls (bzw den einzelnen Items wieder eine Collection von Controls)?
- fängt bei dieser Control-Collection der Zähler wieder bei 1 an?
- warum führst du die Para_Get rekursiv aus? Ist deine Form so weit verschachtelt?

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

magoh87
Mitglied


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

Beiträge: 7
Registriert: 22.09.2011

CATIA V5 R18
Visual Studio 2010,
Visual Basic.NET

erstellt am: 27. Sep. 2011 11:49    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

Hey, danke für die Antwort, ich hab das Problem allerdings gefunden. Es war nicht an CATIA gelegen, oder vielleicht teilweise schon, sondern war es da dran gelegen, dass wenn ich durch alle Controls meiner Form laufen wollte, es nicht in die einzelnen GroupBoxs gesprungen ist. Ich musste jetzt, vielleicht auch als Notlösung, eine Schleife durch jede GroupBox laufen in der sich z.B. eine TextBox ändert. Ziemlich nervig, denn ich hab um die 40Stück aber jetzt funktionierts endlich...
Oder hat vielleicht jemand eine bessere Lösung? Oder weiss vielleicht jemand woran das lag?

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)2023 CAD.de | Impressum | Datenschutz