Autor Beitrag
JohnDyr
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56
Erhaltene Danke: 1

Win 10
C# (VS 2017)
BeitragVerfasst: Sa 05.01.19 18:59 
Hallo nochmal,

habe eine abschließende Frage für heute, bevor ich in den "Feierabend" gehe. Gibt es elegante Wege/Methoden den folgenden Codeabschnitt zu vereinfachen? Man erkennt, das praktisch immer wieder das gleiche ausgeführt wird...

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
                // Contact person data 2
                TbContactDepartment2.Text = MasterDAO.GetContactDepartment(Module, 2, Id);
                TbContactName2.Text = MasterDAO.GetContactName(Module, 2, Id);
                TbContactMail2.Text = MasterDAO.GetContactMail(Module, 2, Id);
                TbContactPhone2.Text = MasterDAO.GetContactPhone(Module, 2, Id);
                TbContactMobile2.Text = MasterDAO.GetContactMobile(Module, 2, Id);
                TbContactFax2.Text = MasterDAO.GetContactFax(Module, 2, Id);

                // Contact person data 3
                TbContactDepartment3.Text = MasterDAO.GetContactDepartment(Module, 3, Id);
                TbContactName3.Text = MasterDAO.GetContactName(Module, 3, Id);
                TbContactMail3.Text = MasterDAO.GetContactMail(Module, 3, Id);
                TbContactPhone3.Text = MasterDAO.GetContactPhone(Module, 3, Id);
                TbContactMobile3.Text = MasterDAO.GetContactMobile(Module, 3, Id);
                TbContactFax3.Text = MasterDAO.GetContactFax(Module, 3, Id);

                // Contact person data 4
                TbContactDepartment4.Text = MasterDAO.GetContactDepartment(Module, 4, Id);
                TbContactName4.Text = MasterDAO.GetContactName(Module, 4, Id);
                TbContactMail4.Text = MasterDAO.GetContactMail(Module, 4, Id);
                TbContactPhone4.Text = MasterDAO.GetContactPhone(Module, 4, Id);
                TbContactMobile4.Text = MasterDAO.GetContactMobile(Module, 4, Id);
                TbContactFax4.Text = MasterDAO.GetContactFax(Module, 4, Id);
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 06.01.19 02:48 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: JohnDyr
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 06.01.19 11:34 
Gerade dafür wäre doch ein eigenes UserControl ideal (für die sechs TextBoxen) - ich nehme mal an, daß diese alle gleichartig zueinander angeordnet sind.
Und von der Form aus könntest du dann eine Liste dieser UserControls verwalten und somit dann per Index die Daten (Eigenschaften) befüllen.

Für diesen Beitrag haben gedankt: JohnDyr
JohnDyr Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56
Erhaltene Danke: 1

Win 10
C# (VS 2017)
BeitragVerfasst: So 06.01.19 12:40 
Zitat:
Fraglich ist, warum du pro Person sechs eigene Textboxen brauchst?!


Ich habe eine Art Visitenkarte TabControl erstellt. Darin habe ich 6 Tabs. Das ist ziemlich benutzerfreundlich. Aber du hast mich auf eine Idee gebracht! Ich kann ja einfach eine ComboBox machen in der ausgewählt wird, welche Person angezeigt werden soll.

Zitat:
Gerade dafür wäre doch ein eigenes UserControl ideal (für die sechs TextBoxen) - ich nehme mal an, daß diese alle gleichartig zueinander angeordnet sind.
Und von der Form aus könntest du dann eine Liste dieser UserControls verwalten und somit dann per Index die Daten (Eigenschaften) befüllen.


Also noch kann ich mir ich nicht vorstellen, wie das umzusetzen wäre. Die "Hauptform" ist übrigens auch schon ein Usercontrol. Außerdem verwende ich aktuell ein TabControl.
Einloggen, um Attachments anzusehen!
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: So 06.01.19 13:49 
user profile iconJohnDyr hat folgendes geschrieben Zum zitierten Posting springen:

Also noch kann ich mir ich nicht vorstellen, wie das umzusetzen wäre. Die "Hauptform" ist übrigens auch schon ein Usercontrol. Außerdem verwende ich aktuell ein TabControl.


Dann hast du ja schon Erfahrung ;-)

Im Gunde teilst du dein Problem (Daten von vielen Personen schön anzeigen) auf in zwei Teilprobleme: Daten von vielen Personen anzeigen und eine Person schön anzeigen.

Also machst du ein Usercontrol, um eine Person schön anzuzeigen und benutzt dein Tabcontrol oder eine Combobox um die Vielzahl abzubilden. In deinem Code sollte dann soetwas vorkommen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
foreach (var person in Persons)
{
  var userControl = new MyUserControl(); // Musst du neu anlegen, gruppiert die Textboxen
  userControl.Person = person; // Daten zuweisen

  var tab = new Tab() // Neue Steite im TabControl, bin mir gerade nicht mehr sicher wie das geht
  tab.Content = userControl;
}

Das soll jetzt nur schematisch sein. Aber überführst du die Liste von Personen in eine Menge an Tabs in deinem Tabcontrol.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 06.01.19 14:26 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: JohnDyr