C# DataGridView Add Form

04/22/2015 18:53 polikas#1
Hey Leute,

Ich bin noch ein Anfänger in C# und bin dabei es zu lernen.

Ich habe mir ein kleines Projekt vorgenommen. Auf der Form1 ist ein DataGridView mit folgenden Columns:

BookNr, BookName, BookAutor

So, mit einen Button wird eine zweite Form geöffnet, mit dieser zweiten Form möchte ich Daten in das DataGridView hinzufügen. 3 TextBox und einen Button "Hinzufügen".

Mein Problem ist, das ich nicht von der Form2 auf das DataGridView auf der Form1 zugreifen kann. Bzw. wie ich die eingebenen Daten von Form2 auf die Form1 übertragen kann und somit in das DataGridView hinzufügen kann.

Ich habe aber bis jetzt noch keine Anleitung gefunden, wie man so eine zweite Form als "AddForm" nutzen kann.

Vielen Dank
Dennis
04/22/2015 19:15 tolio#2
Da ich jetzt keine Lust hab viel zu schreiben hier ne kleine Implementation für ne Form die ne Captcha Anzeigt und das Ergebnis danach verfügbar macht, das Prinzip sollte sichtbar sein wie man Daten auf die Form und von ihr runter bekommt.

Code:
    public partial class FrmCaptchaDisplay : Form
    {
        public FrmCaptchaDisplay(Image img)
        {
            InitializeComponent();
            PicCaptcha.Image = img;
        }

        public string Result = string.Empty;

        private void BtnOk_Click(object sender, EventArgs e)
        {
            Result = TxtResult.Text;
            this.Close();
        }
    }
Aufruf:
Code:
Image captcha = [...]
var frmCaptcha = new FrmCaptchaDisplay(captcha);
frmCaptcha.ShowDialog();
string safeCode = frmCaptcha.Result;
05/01/2015 02:02 Lee Ki-Hwan#3
Also wie der vorposter, hab ich mal ein Beispiel gemacht, der Punkt hierbei sind eigentlich Konstruktoren.
-> [Only registered and activated users can see links. Click Here To Register...]

Du kannst das alles auch anders machen, aber da gibts bei google denke ich mehr als genug Tutorials.

Hier mal mein Code sollte selbst erklärend sein:
Form1 zeigt beim Button-Click Form2, Form2 zeigt eine MessageBox mit den übergebenen Werten von Form1.
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        private string m_BookName;
        private string m_BookAuthor;
        private int m_BookNumber;


        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Die werte hier sind jetzt hardcoded, du müsstest in deinem Programm, dann
            // die Werte aus der DataGridView holen und sie zwischen speichern in variablen.
            m_BookName = "testName";
            m_BookAuthor = "testAuthor";
            m_BookNumber = 1;
            Form2 frm2 = new Form2(m_BookName, m_BookAuthor, m_BookNumber);
            frm2.ShowDialog();


        }
    }
}
Form2:
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
        private string m_BookName;
        private string m_BookAuthor;
        private int m_BookNumber;

        public Form2()
        {
            InitializeComponent();
        }

        public Form2(string Bookname,string Bookauthor, int Booknumber)
        {
            InitializeComponent();
            m_BookName = Bookname;
            m_BookAuthor = Bookauthor;
            m_BookNumber = Booknumber;

            // Als MessageBox ausgeben:
            MessageBox.Show(m_BookName.ToString() + " - " + m_BookAuthor.ToString() + " - " + m_BookNumber.ToString());
        }

        private void Form2_Load(object sender, EventArgs e)
        {

        }
    }
}