[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]
コメント