none
Winsform DataGridView 篩選資料滑鼠移至指定列 RRS feed

  • 問題

  • 以下是我取得DataGridView的方式,想請問各位,若今天我做了一個搜尋的方法,也就是說,我是否能使用sqlCmand的方式來搜尋,搜尋成功的話,滑鼠便直接到指定的那一列
                    string selectCmd = "select PartNo ,PArea ,Create_Date  from board order by Create_Date desc ";
                    da = new SqlDataAdapter(selectCmd, conn);
                    ds.Tables.Add(dt);
                    DataColumn dcPartNo = dt.Columns.Add("PartNo", typeof(string));
                    DataColumn dcPArea = dt.Columns.Add("PArea", typeof(float));
                    dt.PrimaryKey = new DataColumn[] { dcPartNo };
                    da.Fill(ds.Tables["BoradDT"]);
                    dataGridView1.DataSource = ds.Tables["BoradDT"];
    我本來是用dataview來篩選,但是畫面只會出現指定的那一列,若是說我想篩選到的時候滑鼠便移到那一列,想請問各位應該是使用何種方法來做
                dataGridView1.DataSource = dv;
                dv.RowFilter = "PartNo = '" + TargetItem.Text.Trim() + "'";
                string sortStr=string.Empty;
                dv.Sort = sortStr;
                dataGridView1.DataSource = dv;
           
    2011年9月1日 上午 03:40

解答

  • 感謝Bill的提示 :              我將以上的做搭配  , 就變成我說的 ~ 搜尋成功的話,滑鼠便直接到指定的那一列,給大家參考參考

     

     

                                  bindingSource1.DataSource = ds.Tables["BoradDT"];

                                   int index = bindingSource1.Find("PartNo", TargetItem.Text);

                                   if (index != -1)

                                    {

                                           dataGridView1.Rows[index].Selected = true;

                                           dataGridView1.FirstDisplayedScrollingRowIndex = index;

                                      }

    • 已標示為解答 Louis Seven 2011年9月2日 下午 04:25
    2011年9月1日 上午 07:07

所有回覆

  • 移動滑鼠 ? 這樣就得要先算出該Row相對於Screen的位置, 然後還得呼叫Win32 API去移動滑鼠.

    如果只是要標示選取的話, 用 [DataGridViewRow.Selected 屬性]


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年9月1日 上午 04:51
    版主
  • Bill 請問~如果資料在很下方.需要下什麼屬性嗎? 

                  因為如果資料在很下方就看不到了~

    2011年9月1日 上午 05:08
  • 你可以移動DataGridView的可視範圍.

    [DataGridView.FirstDisplayedScrollingRowIndex 屬性]

    我剛忘了講, 如果你確定一次只有一個Row會被選擇, 用BindingSource來繫結資料更乾脆, 只要移動BindingSource.Position就好了


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2011年9月1日 上午 05:22
    版主
  • 感謝Bill的提示 :              我將以上的做搭配  , 就變成我說的 ~ 搜尋成功的話,滑鼠便直接到指定的那一列,給大家參考參考

     

     

                                  bindingSource1.DataSource = ds.Tables["BoradDT"];

                                   int index = bindingSource1.Find("PartNo", TargetItem.Text);

                                   if (index != -1)

                                    {

                                           dataGridView1.Rows[index].Selected = true;

                                           dataGridView1.FirstDisplayedScrollingRowIndex = index;

                                      }

    • 已標示為解答 Louis Seven 2011年9月2日 下午 04:25
    2011年9月1日 上午 07:07