簡體   English   中英

c#:如何以編程方式突出顯示/刪除datagridview中的行

[英]c#: how to programmatically highlight/delete rows from datagridview

我有一個查詢的結果被轉儲到datagridview。 它看起來像這樣:

QC3 498.46
QC4 1,251.63
QC1 862.62
QC2 1,432.21

我需要兩件事

  1. 能夠以編程方式刪除第二個字段= 862.62 (或只刪除第三行)的datagrid的所有行
  2. 我需要以編程方式突出顯示並向下滾動到該行以向用戶顯示第一個字段是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM