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

[ad_1]

مرحبًا، أحتاج إلى مساعدة في الحصول على القيم من 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;
}

[ad_2]

コメント

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