[英]c#: how to programmatically highlight/delete rows from datagridview
我有一個查詢的結果被轉儲到datagridview。 它看起來像這樣:
QC3 498.46
QC4 1,251.63
QC1 862.62
QC2 1,432.21
我需要兩件事
862.62
(或只刪除第三行)的datagrid的所有行 QC4
,第二個字段是1,251.63
能夠以編程方式刪除第二個字段= 862.62的所有datagrid行
var rowsToRemove = from DataGridViewRow r in dataGridView1.Rows
where r.Cells[1].Value.ToString() == "862.62" // use whatever conversion is appropriate here
select r;
foreach (var r in rowsToRemove)
dataGridView1.Rows.Remove(r);
要刪除特定索引處的行,請調用RemoveAt
:
dataGridView1.Rows.RemoveAt(2);
我需要以編程方式突出顯示並向下滾動到該行以向用戶顯示第一個字段是QC4的位置,第二個字段是1,251.63
找到要選擇的行,然后設置Selected
屬性和FirstDisplayedScrollingRowIndex
屬性:
rowToSelect.Selected = true;
dataGridView1.FirstDisplayedScrollingRowIndex = rowToSelect.Index;
這是一個非常基本的例子 - 它需要一些工作,但我認為這是正確的方向。
private void Form1_Load(object sender, EventArgs e)
{
List<TestClass> list = new List<TestClass>();
list.Add(new TestClass() { Prop1="QC1",Prop2="1.000"});
list.Add(new TestClass() { Prop1 = "QC2", Prop2 = "2.000" });
list.Add(new TestClass() { Prop1 = "QC3", Prop2 = "3.000" });
list.Add(new TestClass() { Prop1 = "QC4", Prop2 = "4.000" });
dataGridView1.DataSource = list;
}
public class TestClass
{
public string Prop1 { get; set; }
public string Prop2 { get; set; }
public TestClass()
{
}
}
private void button1_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells[0].Value == "QC3" && row.Cells[1].Value == "3.000")
row.Selected = true;
}
}
我希望這有幫助 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.