我有Form1
,其中包含几个私有文本框。我想将某些值从Form2
中的DataGridView传递到Form1
中的那些TextBoxes(例如,当我按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 ...
}
答案 0 :(得分:2)
private string CodeTextBox; private string NameTextBox; private string BlahTextBox;
Public Form1(string CodeTextBox , string NameTextBox, string BlahTextBox)
{
this.CodeTextBox= CodeTextBox;
this.NameTextBox= NameTextBox;
this.BlahTextBox = BlahTextBox;
}
txtCodeTextBox.Text = CodeTextBox;
txtNameTextBox.Text = NameTextBox;
txtBlahTextBox.Text = BlahTextBox;
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())
{
string CodeTextBox = sqldr[codecolumn].Tostring;
string NameTextBox = sqldr[Namecolumn].Tostring;
string BlahTextBox = sqldr[Blahcolumn].Tostring;
Form1 frm = new Form1(CodeTextBox, NameTextBox, BlahTextBox);
}
}
答案 1 :(得分:1)
尝试
CodeTextBox文本更改事件
public void CodeTextBox_TextChanged(object sender, EventArgs e)
{
CodeTextBox.Text = ((TextBox)sender).Text;
}
SqlDataReader
while (sqldr.Read())
{
Form1 form1 = new Form1();
TextBox t = new TextBox();
t.Text=sqldr[codecolumn].Tostring;
form1.CodeTextBox_TextChanged(t,null);
}