قام DataGridView بتحديد قيم أعمدة الصف إلى مربع النص


مرحبًا، أحتاج إلى مساعدة في الحصول على القيم من datagridview إلى مربعات النص، أواجه datagridview للحصول على البيانات من SQL والتي تحسب 4 أعمدة وعدد الصفوف المستردة من sql، لدي 4 مربعات نص، أريد أن يتم نقل قيم عمود الصف المحدد من datagridview إلى مربعات النص.

يرجى تقديم المشورة بشأن نفسه.

الحل 1

ربما تريد الرد على حدث DataGridView.SelectionChanged[^].
في معالجه، تحقق مما إذا تم تحديد صف واحد، ثم احصل على القيم من هذا الصف وضعها في مربعات النص.

ج #
private void DataGridView1_SelectionChanged(object sender, EventArgs e)
{
  if( DataGridView1.SelectedRows.Count = 0 )
  {
    TextBox1.Value = DataGridView1.SelectedRows(0).Cells(0).Value;
    TextBox2.Value = DataGridView1.SelectedRows(0).Cells(1).Value;
    TextBox3.Value = DataGridView1.SelectedRows(0).Cells(2).Value;
    TextBox4.Value = DataGridView1.SelectedRows(0).Cells(3).Value;
  }
}

لم يتم اختبار الكود وقد يحتوي على أخطاء إملائية.

تأكد من أن خاصية DataGridView.SelectionMode[^] تم ضبطه على FullRowSelect لهذا العمل.

يمكنك استخدام خاصية DataGridView.MultiSelect[^] للتأكد من تحديد صف واحد فقط في كل مرة.

الحل 3

مرحبًا، الأمر على ما يرام الآن

ج #
private void dgviewSearch_CellcontentClick(object sender, DataGridViewCellEventArgs e)
{
int i;
i = dgViewSearch.SelectedCells[0].RowIndex;
textBox3.Text = dgViewSearch.Rows[i].Cells[1].Value.ToString();
textBox4.Text = dgViewSearch.Rows[i].Cells[3].Value.ToString();
}

شكرًا جزيلاً لمساعدتك، وأنا أتطلع إلى اختيارات متعددة في datagridview لمربع النص مع (فاصلة) مثل (2001،2002،2003)

الحل 2

سجل حدث MouseClick للشبكة واستخدم الكود التالي.

ج #
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
    DataGridViewRow dr = dataGridView1.SelectedRows[0];
    textBox1.Text = dr.Cells[0].Value.ToString();
     // or simply use column name instead of index
    //dr.Cells["id"].Value.ToString();
    textBox2.Text = dr.Cells[1].Value.ToString();
    textBox3.Text = dr.Cells[2].Value.ToString();
    textBox4.Text = dr.Cells[3].Value.ToString();
}

وأضف السطر التالي في حدث التحميل الخاص بك

ج #
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

الحل 8

dgvAllUsers_CellContentClick باطل خاص (مرسل الكائن، DataGridViewCellEventArgs e)
{

إذا (e.RowIndex >= 0)
{
صف DataGridViewRow = this.dgvAllUsers.Rows[e.RowIndex];

textId.Text = الصف.الخلايا[“idUser”].Value.ToString();
textFullName.Text = الصف.الخلايا[“FullName”].Value.ToString();
textUserName.Text = الصف.الخلايا[“UserName”].Value.ToString();
textPassword.Text = الصف.الخلايا[“Password”].Value.ToString();
textAddress.Text = الصف.الخلايا[“Address”].Value.ToString();
textGender.Text = الصف.الخلايا[“Gender”].Value.ToString();
textContactNumber.Text = الصف.الخلايا[“ContactNumber”].Value.ToString();
ComboUserType.SelectedText =row.Cells[“UserType”].Value.ToString();
}
}

الحل 9

استخدم دائمًا حدث GridView1_CellEnt لأنه إذا قمت بنقل الخلايا باستخدام مفاتيح الأسهم أو النقر بالماوس، فسيكون ذلك مفيدًا لكليهما.
واستخدم دائمًا if (dataGridView1.SelectedCells.Count > 0) وإلا فسيتعين عليك تحديد الصف الكامل.
dataGridView1_CellEnter (مرسل الكائن، DataGridViewCellEventArgs e) باطلة خاصة
{
إذا (dataGridView1.SelectedCells.Count > 0) // تأكد من تحديد المستخدم لصف واحد على الأقل
{

DataGridToTextboxes(e.RowIndex);

}
}

DataGridToTextboxes باطلة خاصة (int x)
{

سلسلة Item1 = dataGridView1.Rows[x].الخلايا[1].القيمة + سلسلة.فارغة؛

// سلسلة SrNo =selectRows.Cells[0].القيمة + سلسلة.فارغة؛
// سلسلة Item1 = SelectRows.Cells[1].القيمة + سلسلة.فارغة؛

سلسلة MinRange = dataGridView1.Rows[x].الخلايا[2].القيمة + سلسلة.فارغة؛
سلسلة MaxRange = dataGridView1.Rows[x].الخلايا[3].القيمة + سلسلة.فارغة؛

سلسلة MinStable = dataGridView1.Rows[x].الخلايا[4].القيمة + سلسلة.فارغة؛
سلسلة MaxStable = dataGridView1.Rows[x].الخلايا[5].القيمة + سلسلة.فارغة؛

txtItem.Text = Item1;
TextMinRange.Text = MinRange;
TextMaxRange.Text = MaxRange;
TextMinStable.Text = MinStable;
TextMaxStable.Text = MaxStable;
}

コメント

タイトルとURLをコピーしました