Как передать значение из одной формы в закрытый TextBox в другой форме? - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть Form1 с несколькими личными текстовыми полями.Я хочу передать некоторые значения из моего DataGridView в Form2 в эти текстовые поля в Form1 (например, когда я нажимаю Enter).
Что я хочу сделать, это передать значения строк текущего выбранного Rowв DataGridView для передачи в TextBoxes в Form1:

(я знаю, как получить значения выбранной строки в 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 ...
}

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

попробуйте

Текст 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);

                        }
0 голосов
/ 18 ноября 2018

Объявление закрытой переменной и конструктора Form1 с параметром, подобным:

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);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...