ฉันจะเลือกช่วงของแถวที่ต้องการในDataGridView
โปรแกรมขณะรันไทม์ได้อย่างไร
ฉันจะเลือกช่วงของแถวที่ต้องการในDataGridView
โปรแกรมขณะรันไทม์ได้อย่างไร
คำตอบ:
ไม่ได้ทดสอบ แต่ฉันคิดว่าคุณสามารถทำสิ่งต่อไปนี้ได้:
dataGrid.Rows[index].Selected = true;
หรือคุณสามารถทำสิ่งต่อไปนี้ (แต่อีกครั้ง: ไม่ได้ทดสอบ):
dataGrid.SelectedRows.Clear();
foreach(DataGridViewRow row in dataGrid.Rows)
{
if(YOUR CONDITION)
row.Selected = true;
}
SelectedRows.Clear()
การล้างเฉพาะแถวที่เลือก แต่ClearSelection()
คอลัมน์ => การเลือกคอลัมน์ก็หายไปด้วย ...
dataGrid.CurrentCell = dataGrid.Rows[row.Index].Cells[0];
ใน Visual Basic ให้เลือกแถวใน a DataGridView
; แถวที่เลือกจะปรากฏขึ้นพร้อมกับสีที่ไฮไลต์ แต่โปรดทราบว่าตำแหน่งเคอร์เซอร์จะไม่เปลี่ยนแปลง:
Grid.Rows(0).Selected = True
ทำการเปลี่ยนตำแหน่งของเคอร์เซอร์:
Grid.CurrentCell = Grid.Rows(0).Cells(0)
การรวมเส้นด้านบนจะเป็นการวางตำแหน่งเคอร์เซอร์และเลือกแถว นี่เป็นขั้นตอนมาตรฐานสำหรับการโฟกัสและเลือกแถวในDataGridView
:
Grid.CurrentCell = Grid.Rows(0).Cells(0)
Grid.Rows(0).Selected = True
DataGridView.Rows
.OfType<DataGridViewRow>()
.Where(x => (int)x.Cells["Id"].Value == pId)
.ToArray<DataGridViewRow>()[0]
.Selected = true;
<GridViewName>.ClearSelection(); ----------------------------------------------------1
foreach(var item in itemList) -------------------------------------------------------2
{
rowHandle =<GridViewName>.LocateByValue("UniqueProperty_Name", item.unique_id );--3
if (rowHandle != GridControl.InvalidRowHandle)------------------------------------4
{
<GridViewName>.SelectRow(rowHandle);------------------------------------ -----5
}
}
โดยที่ itemList คือรายการของแถวที่จะเลือกในมุมมองตาราง
ลองสิ่งนี้:
datagridview.Rows[currentRow].Cells[0];
datagridview.Rows[currentRow].Cells[0]
รับ ... เซลล์ที่ตำแหน่งดัชนีที่ระบุ วิธีนี้เลือกช่วงของแถวตามที่ร้องขอในคำถามได้อย่างไร
คุณสามารถใช้วิธีการเลือกหากคุณมีแหล่งข้อมูล: http://msdn.microsoft.com/en-us/library/b51xae2y%28v=vs.71%29.aspx
หรือใช้ linq หากคุณมีวัตถุในแหล่งข้อมูลของคุณ
เมื่อตั้งค่าแถวที่เลือกของ DataGridView ในเวลาโหลดให้พิจารณาจัดการสิ่งนี้ในเหตุการณ์ DataBindingComplete เนื่องจากสามารถเขียนทับได้โดยค่าเริ่มต้น
ลองสิ่งนี้:
DataGridViewRow row = dataGridView1.Rows[index row you want];
dataGridView1.CurrentRow = row;
หวังว่านี่จะช่วยได้!
read-only
แล้วSelectedRows.Clear()
จะไม่ทำงาน