Autor Beitrag
Gary 0n T0ur
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 02.07.12 16:01 
Hallo @all

ich hab ein Problem mit einem Projekt, vielleicht könnt ihr mir dabei helfen.

Problem: und zwar will ich im Code beim Klicken auf ein item in einer ItemList ein neues Fenster starten. Das Fenster hab ich bereits erstellt und heißt Form2. Wenn man jetzt auf ein Item klickt wird der Wert von item ausgelesen (soweit habe ich alles), danach will ich ein neues Fenster öffnen (Form2) mit dem Methoden Namen des ausgelesenen wertes vom Item auf dem geklickt worden ist.

Soll ca. so aussehen (bespiel Code funktioniert nicht :D ist auch klar): Form ausgelesene_wert = new Form2; ausgelesener_wert.Show();

Der Zweck warum ich die Methoden den Namen des ausgelesenen wertes geben will ist. Das ich später z.B. Text in einer TextBox in der bestimmten Form ändern kann.

z.B. so: ausgelesener_wert.Textbox1.text = "Test";

Falls Ihr eine Lösung habt, oder irgendeine andere Lösung wie man es machen könnte bin ich sehr Dankbar!

MfG GaRy
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mo 02.07.12 16:37 
Meintest du nicht Wert von Item?
Von welcher Methode soll der Name denn sonst sein? Oder gibt es für jeden Wert eine extra Methode, die entsprechend ausgeführt wird?


Nun, ist ja eigentlich auch egal, denn soweit ich weiß, ist das nicht möglich.

Wenn du aber unbedingt eine Form an einen bestimmten Namen knüpfen willst, kannst du doch ein Dictionary<string, Form> global in der Klasse fest legen.
Dort fügst du dann den Namen der Form, den sie haben soll, als Key ein und Value ist dann die Form, die so heißen soll.

Über den Indexer kannst du dann ganz einfach darauf zugreifen, also z.B. so:

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:
24:
25:
public partial class Form1 : Form
{
    private Dictionary<string, Form> Fenster = new Dictionary<string, Form>();

    public Form1() { InitializeComponent(); }

    private void Item_Click(object sender, EventArgs e)
    {
        switch ((string)((ComboBox)sender).SelectedItem)
        {
            case "MethodenName":
                Fenster.Add("Methode_MethdenName"new Form2());
                Fenster["Methode_MethdenName"].ShowDialog();
                break;
            defaultbreak;
        }
    }

    private void ChangeText(string Item,string newText)
    {
        Fenster["Methode_MethdenName"].Text = newText;
    }

    private void MethodenName() { }
}
Gary 0n T0ur Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 02.07.12 20:53 
Yess, funktioniert perfekt, Danke das war genau das was ich gesucht habe! :D

Vielen Dank!