我正在制作一个有 DataGridView 的程序。此 GridView 通过 SQL 连接通过 1 个表获取其数据。该表有 1 列和一些行。
对于每一行,都有另一列带有按钮。当我单击该按钮时,我希望它打开另一个表单,该表单仅显示我现在单击的行中的文件名。
不幸的是,程序打开了表单,但显示了表格中的第一个单元格。这是因为 Form2 从未被告知它应该从 Form1 获得的 e.RowIndex 编号,因此它知道要显示哪一行。所以现在它假设无论我点击哪个按钮,我都想要 e.RowIndex 编号 0,它指的是单元格编号 1。
所以,关于这个问题;如何让它在假设它只是 0 之前更新我的 chartRowNumber?
表格一:
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;
using System.Data.SqlClient;
using System.Data.Sql;
using System.Threading;
namespace WindowsFormsApplication5
{
public partial class Form1 : Form
{![enter image description here][1]
DataTable userTable = new DataTable();
DataGridViewButtonColumn checkMeasurement = new DataGridViewButtonColumn();
public DataSet ds = new DataSet();
private SqlConnection con = new SqlConnection(@"Data Source=irrelevant");
public Form1()
{
InitializeComponent();
con.Open();
SqlCommand cmd = new SqlCommand("SELECT BlobFilename FROM tblUsers", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
checkMeasurement.HeaderText = "Se Måling";
checkMeasurement.Text = "";
checkMeasurement.UseColumnTextForButtonValue = true;
dataGridView1.DataSource = ds.Tables[0];
dataGridView1.Columns.Add(checkMeasurement);
}
public void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
Form2 f = new Form2();
f.chartRowNumber = e.RowIndex;
Thread.Sleep(1000);
f.Show();
}
}
}
}
表格 2
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 WindowsFormsApplication5
{
public partial class Form2 : Form
{
public int chartRowNumber;
public Form2()
{
InitializeComponent();
Form1 f = new Form1();
DataTable PatientTable = f.ds.Tables[0];
listBox1.Items.Add(PatientTable.Rows[chartRowNumber].ItemArray[0].ToString());
}
}
}
如果您有兴趣,这是 GUI 的图片。 http://i.stack.imgur.com/PDyFt.png