C# Wert aus DataGridView in TextBox (über Button)

LongDong

Lieutenant
Registriert
Okt. 2010
Beiträge
588
Hallo Leute,

hab ein Problem, ich würde gerne über einen Button die aus der DataGridView gewählte Zeile in 3 Buttons aufteilen. einmal die Spalte X, einmal die Spalte Y und einmal die Spalte Z.

Was ich jetzt möchte:
Wenn ich im DataGridView eine Zeile auswähle und auf X_Achse_übernehmen (Button) drücke, soll der Wert in eine TextBox gepackt werden.

Was bis jetzt funktioniert: das der jeweilige Wert bei nem Doppelklick übernommen wird, es soll aber über den Button auch gehen.

Danke im voraus.

LG Jan
 
Servus,

Welches Framework setzt du denn ein? Windows Forms oder WPF?
Und falls WPF, kommt MVVM zum Einsatz oder wie kommuniziert deine Logik bisher mit der Oberfläche?

Mfg

Saphirim
 
Mache alles über Windows Forms. Was ist MVVM?
Puh, mach das erst seit 2 Tagen etwa, wenn du magst häng ich grad mal mein Quellcode an.

Button 1 entspricht jetzt "X_Achse_übernehmen"

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 CalculateDatabase
{
public partial class Form1 : Form
{





public Form1()
{
InitializeComponent();

}

private void tableBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.tableBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.database1DataSet);

}

private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'database1DataSet.Table' table. You can move, or remove it, as needed.
this.tableTableAdapter.Fill(this.database1DataSet.Table);
}












private void tableDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
if (textBox1.Text == "")
{
textBox1.Text = tableDataGridView.CurrentCell.Value.ToString();
}
else
{
textBox2.Text = tableDataGridView.CurrentCell.Value.ToString();
}

}

private void ResetTextbox1_Click(object sender, EventArgs e)
{
textBox1.Clear();
}

private void ResetTextbox2_Click(object sender, EventArgs e)
{
textBox2.Clear();
}

private void Addition_Click(object sender, EventArgs e)
{
double zahl1;
zahl1 = Convert.ToDouble(textBox1.Text);
zahl1 = double.Parse(textBox1.Text);


double zahl2;
zahl2 = Convert.ToDouble(textBox2.Text);
zahl2 = double.Parse(textBox2.Text);

double Ergebnis;
Ergebnis = zahl1 + zahl2;

ResultTextbox.Text = Ergebnis.ToString();

}

private void Subtraction_Click(object sender, EventArgs e)
{
double zahl1;
zahl1 = Convert.ToDouble(textBox1.Text);
zahl1 = double.Parse(textBox1.Text);


double zahl2;
zahl2 = Convert.ToDouble(textBox2.Text);
zahl2 = double.Parse(textBox2.Text);

double Ergebnis;
Ergebnis = zahl1 - zahl2;

ResultTextbox.Text = Ergebnis.ToString();
}

private void button1_Click(object sender, EventArgs e)
{

}







}
}
 
über gridview.focusedRow kommst du an die selektierte row. //könnte auch GetFocusedRow heißen, musst du mal schauen
durch die columns dieser row dann mit gridview.focusedRow[0] //....1,2


private void button1_Click(object sender, EventArgs e)
{
textBox1.text = Convert.ToString(gridview.focusedRow[0]); //erste spalte der selektierten zeile
}
 
Zuletzt bearbeitet:
So hab den Code mal ausprobiert,
bei focusedRow bekomm ich folgende Fehlermeldung:

Error 1 'System.Windows.Forms.DataGridView' does not contain a definition for 'focusedRow' and no extension method 'focusedRow' accepting a first argument of type 'System.Windows.Forms.DataGridView' could be found (are you missing a using directive or an assembly reference?)

und auch GetFocusedRow bring den selben Fehler :/


Bedanke mich im voraus
LG
 
Servus nochmal,

Zum Thema was ist MVVM: https://de.wikipedia.org/wiki/Model_View_ViewModel
Evtl. solltest du dich bisschen mit WPF und dann auch MVVM beschäfitgen, Windows Forms ist tatsächlich etwas veraltet.

Zur deinem Problem:
Evtl. hilft dir dieser Eintrag hier weiter:
http://stackoverflow.com/questions/...-row-in-datagrid-for-windows-form-application

Statt auf "focusedRow" zuzugreifen wird hier die Property "SelectedRows" gewählt, und dann auf den ersten Eintrag dieser Sammlung zurückgegriffen => SelectedRows[0]. Vorausgesetzt dein GridView erlaubt nur die Auswahl einer Zeile wäre dies dann die ausgewählte.

Was mir in dem Beispiel fehlt, ist die Überprüfung auf null, falls keine Zeile ausgewählt ist, schmiert dir jeder weitere Aufruf auf "SelectedRow[0]" vermutlich mit einer entsprechenden Exception ab.

Mfg

Saphirim
 
Zurück
Oben