C#: Datagriedview und Form2

Gast #5968223
Lesenswert?

Hallo,

Ich lerne seit einiger Zeit in der Volkshochschule C#.
ich würde gern ein kleines Programm mit einem Datagriedview erstellen, 
klickt man auf den Inhalt einer Zelle soll sich "Form2" öffnen und den 
Inhalt in der Zelle abbilden. Klickt man dann noch einmal auf eine Zelle 
soll sich keine neue "Form2" öffnen sondern die geöffnete soll den neu 
angeklickten Inhalt abbilden.

Hier ist mein Code:
1
Form1:
2

3
namespace dataGridView_FormCLICK
4
{
5
    public partial class Form1 : Form
6
    {
7

8
        bool freigabe = true;
9

10

11
        public Form1()
12
        {
13
            InitializeComponent();
14
        }
15

16
        private void button1_Click(object sender, EventArgs e)
17
        {
18
            this.dataGridView1.Rows.Add(textBox1.Text, textBox2.Text);
19
        }
20

21
        private void button2_Click(object sender, EventArgs e)
22
        {
23
            //Form2 öffnen
24
        }
25

26
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
27
        {
28

29
            Form2 frm = new Form2();
30
            frm.textBox1.Text = this.dataGridView1.CurrentRow.Cells[0].Value.ToString();
31
            frm.textBox2.Text = this.dataGridView1.CurrentRow.Cells[1].Value.ToString();
32

33
            if (freigabe == true)
34
            {
35
                frm.Show();
36
                freigabe = false;
37
            }
38

39
            
40
            frm.Refresh();
41
        }
42
    }
43
}


und für Form2:
1
namespace dataGridView_FormCLICK
2
{
3
    public partial class Form2 : Form
4
    {
5
        public Form2()
6
        {
7
            InitializeComponent();
8
        }
9
    }
10
}


Vielen Dank für jeglich Hilfe!
Angehängte Dateien:
Gast #5968402
Lesenswert?

Programm schrieb:

> Ich lerne seit einiger Zeit in der Volkshochschule C#.

Tja, auch die gehobene VHS-Bildung kann eigenes logisches Denken leider 
nicht ersetzen...

> ich würde gern ein kleines Programm mit einem Datagriedview erstellen,
> klickt man auf den Inhalt einer Zelle soll sich "Form2" öffnen und den
> Inhalt in der Zelle abbilden. Klickt man dann noch einmal auf eine Zelle
> soll sich keine neue "Form2" öffnen sondern die geöffnete soll den neu
> angeklickten Inhalt abbilden.

Tja, Kinderkram. Du musst einfach nur darüber nachdenken, worin der 
Unterschied dieser zwei Situationen besteht. Wenn du nicht völlig 
behämmert bist, kommst du sehr schnell darauf, dass der Unterschied wohl 
darin bestehen muss, ob im Moment des Anklickens der Zelle schon eine 
Instanz von Form2 existiert oder halt nicht.

Du musst das halt prüfen und in der weiteren Behandlung entsprechend 
verzweigen. D.h.: wenn noch keine Instanz existiert, dann halt eine 
erzeugen, ansonsten die existierende verwenden. Weiter geht's dann für 
beide Fälle identisch. Daten aus dem Grid in die entsprechenden Controls 
der Form2-Instanz einfüllen.
Gast #5968593
Lesenswert?

Muß es denn wirklich C# sein? Ich wäre froh wenn ich mich nicht damit 
rum schlagen müßte. Andererseits man wird natürlich nicht dümmer davon, 
wenn man's lernt.

Allerdings würde ich nicht mehr mit Windowsforms anfangen. Der Trend 
geht eher zu WPF. Bei uns wir eigentlich alles mit WPF gemacht.

Ansonsten hat c-heater alles gesagt, wie es zu machen ist. In WPF wäre 
es nicht anders.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren