【发布时间】:2019-04-20 22:57:05
【问题描述】:
我有 Form1 和几个 private 文本框。我想将 Form2 中的 DataGridView 中的一些值传递给Form1 中的那些文本框(例如,当我按 Enter 时)。
我想要做的是将DataGridView中当前选定Row的行的值传递给Form1中的TextBoxes:
(我知道如何在 datagridview 中获取所选行的值,我的问题只是标题...)
if (e.KeyCode == Keys.Enter)
{
SqlCommand sqlcmd = new SqlCommand("SELECT ID FROM X WHERE ID=" +
dataGridView1.CurrentRow.Cells[0].Value + "", sqlcon);
SqlDataReader sqldr = sqlcmd.ExecuteReader();
while (sqldr.Read())
{
Form1.CodeTextBox = sqldr[codecolumn].Tostring
Form1.NameTextBox = sqldr[Namecolumn].Tostring
Form1.BlahTextBox = sqldr[Blahcolumn].Tostring
}
}
对我大喊大叫:
codeTextBox 是私有的...由于保护原因无法这样做 等级...
我想我必须创建一个静态类才能这样做,但我不知道如何。
如果有人能解释一下,我会很高兴的。
Form1类:
public partial class Form1 : Form
{
public static string searchString;
SqlConnection sqlcon =
new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\Database1.mdf;Integrated Security=True");
public Form1()
{
InitializeComponent();
SqlDataAdapter sqlda = new SqlDataAdapter("GetInvoice", sqlcon);
DataTable dt = new DataTable();
sqlda.Fill(dt);
dataGridView1.DataSource = dt;
}
//Xbuton_click datagridview_blah ...
}
【问题讨论】:
-
你能告诉我们你
Form1类吗? -
尝试让您的
codeTextBox实例为public -
@D-Shih 我展示了 Form1。有必要吗?如果它不让我知道缩短问题
-
@D-Shih 请告诉我怎么做?
-
您希望传递数据是什么?因为你使用
sqldr.Read()可能会读取不止一行的数据。我在您的form1中没有看到和文本框类
标签: c# winforms class static public