Autor
|
Thema: Skriptprogrammierung Zugriff Steuerelemente (2396 mal gelesen)
|
mssoftware Mitglied alles mögliche
Beiträge: 76 Registriert: 15.06.2005 Design Suite 2011-2016 Ultimate Microsoft Visual Studio Professional 2010<P>i7 2600K @3,4Ghz Windows 7 64bit nvidia GTX 760 16GB RAM 2x SSD256GB NAS 1TB (gespiegelt)
|
erstellt am: 30. Jul. 2009 13:37 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe in der Managment Konsole unter Maskendesigner->Dokument->CAD-Dokument->Formular->Dokument erstellen einen Button und ein Label aus den Steuerelementen hinzugefügt. Nun möchte ich zum testen lediglich beim drücken des Buttons den Text des Labels ändern. Dafür habe ich im Ereignis "MouseClick" des Buttons folgenden Code geschrieben: Label_1600_1140_0_10002.text = "Hallo" Nun kommt die folgende Fehlermeldung: Der Name Label_1600_1140_0_10002 wurde nicht deklariert. Warum kennt das Ereignis nicht das Label bzw. wie kann ich es deklarieren? Ich habe es auch einmal mit dem Button selber versucht und den kennt er auch nicht?! Von Delphi und Visual Basic Express kenne ich es so, das alle Steuerelemente direkt angesprochen werden können, wenn der Code im "Vaterobjekt" liegt. Gruß Maik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ed.Emmy Mitglied
Beiträge: 1 Registriert: 03.08.2009
|
erstellt am: 03. Aug. 2009 17:05 <-- editieren / zitieren --> Unities abgeben: Nur für mssoftware
Hallo Maik, der Zugriff auf die Maskenobjekte erfolgt über die PRO.FILE-Klassen. Eine Einführung im Rahmen eines Forums sprengt jedoch den Rahmen. Wende Dich doch an Deinen PRO.FILE-Betreuer. Gruß Ed Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GPF Mitglied
Beiträge: 17 Registriert: 18.06.2004
|
erstellt am: 01. Sep. 2009 08:28 <-- editieren / zitieren --> Unities abgeben: Nur für mssoftware
Hy Maik versuchs mal mit dieser Vorgehensweise: -- gestrichen 1.Button einbauen 2.Event „Click“ auf Button 3.die Zeile MessageBox.Show(“Hier steht der Text“ ; einfügen
Was man mit diesen Dingen anfangen kann ist einfach genial. Wenn Du mehr wissen möchtest befolge den Rat von Ed und kontaktier Deinen Procad-Partner. Grüße Georg [Diese Nachricht wurde von GPF am 02. Sep. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mssoftware Mitglied alles mögliche
Beiträge: 76 Registriert: 15.06.2005 Design Suite 2011-2016 Ultimate Microsoft Visual Studio Professional 2010<P>i7 2600K @3,4Ghz Windows 7 64bit nvidia GTX 760 16GB RAM 2x SSD256GB NAS 1TB (gespiegelt)
|
erstellt am: 08. Sep. 2009 09:27 <-- editieren / zitieren --> Unities abgeben:
Hallo Georg, das mit der Messagebox hat vorher schon funktioniert, allerdings auf die Steuerelemente selber konnte ich bisher nicht zugreifen. Mittlerweile habe ich mit einem sehr hilfsbereitem Programmierer von Procad gesprochen und er hat mir auch ein Beispiel in VB.NET programmiert! Gruß Maik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lueghi Mitglied
Beiträge: 382 Registriert: 01.07.2005 CAD...: SWX2020 SP4, ACAD 2019, Tacton / LINO PDM...: PRO.FILE 8.6 ERP...: proAlpha 6.2e System: Win10, HP ZBook G5
|
erstellt am: 05. Nov. 2010 17:47 <-- editieren / zitieren --> Unities abgeben: Nur für mssoftware
Zitat: Original erstellt von mssoftware: ... Mittlerweile habe ich mit einem sehr hilfsbereitem Programmierer von Procad gesprochen und er hat mir auch ein Beispiel in VB.NET programmiert!
dürfen wir anderen Forumsteilnehmer da auch mal einen Blick drauf werfen ? ------------------ Gruß Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
boni635 Mitglied EDV Berater
Beiträge: 11 Registriert: 31.01.2011
|
erstellt am: 31. Jan. 2011 18:41 <-- editieren / zitieren --> Unities abgeben: Nur für mssoftware
Hallo, eine Möglichkeit wäre:
Code:
protected Control FindChildControl(Form form, string name) { foreach (Control ctrl in GetChildControls(form)) { if (ctrl.Name == name) { return ctrl; } } return null; }protected Control[] GetChildControls(Control ctrl) { ArrayList controls = new ArrayList(); foreach (Control c in ctrl.Controls) { // add this control and all its nested controls controls.Add(c); controls.AddRange(GetChildControls(c)); } // return the result as a Control array return (Control[])controls.ToArray(typeof(Control)); }
... und dann im EventHandler einfach:
Code:
private void Button_51_0_0_10007_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e) { Form form = ((Control)sender).FindForm(); Control ctrl = FindChildControl(form, "Button_62_0_0_10004"); ...
So kann man auf alle Steuerelemente zugreifen, auch auf den Strukturbaum. Gruß Jacek ------------------ ITecture Sedanstr. 61 49076 Osnabrück Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |