2016-10-29 4 views
0

顧客レコードを追加した後、DataGridViewのすべての顧客を表示し、DataGridViewの最初の行を選択する関数を呼び出します。DataGridViewセレクターが特定のレコードに移動する方法

現在、私の人口統計データグリッドビューは、今すぐ追加されています。今すぐ追加されたレコードがDataGridViewにあり、リストの最後にあり、DataGridViewから最初のレコードが選択されています。

private void btnAdd_Click(object sender, EventArgs e) 
{ 
    frmAddModifyCustomer addCustomerForm = new frmAddModifyCustomer(); 
    addCustomerForm.addCustomer = true; 
    DialogResult result = addCustomerForm.ShowDialog(); 
    if (result == DialogResult.OK) 
    { 
     customer = addCustomerForm.customer; 
     txtCustomerID.Text = customer.CustomerID.ToString(); 
     this.DisplayCustomer(); 
     this.AllCustomer(); 
    } 
} 

private void AllCustomer() 
{ 

    DataTable dt = new DataTable(); 

    try 
    { 
     dt = CustomerDB.AllCustomer(); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message, ex.GetType().ToString()); 
    } 


    if (dt != null) 
    { 

     grvCustomer.Visible = true; 

     grvCustomer.DataSource = dt; 

    } 
    else 
    { 
     MessageBox.Show("No customer found with this ID. " + 
       "Please try again.", "Customer Not Found"); 
     grvCustomer.Visible = false; 
     this.ClearControls(); 

    } 
} 

答えて

0

あなたはこのsollutionを試すことができます。

grvCustomer.ClearSelection(); 

int IndexRow = grvCustomer.Rows.Count - 1; 

grvCustomer.Rows[IndexRow].Selected = true; 

このコードは、データグリッドに

をあなたの最後の行を選択し、目に見えない行がある場合、最後の行にスクロールするために試すことができますこれは

0

グリッドの下部に新しく追加された行を選択したいと思います。

オプションで、前の選択が存在する場合は削除することができます。最後の行のselectedプロパティをtrueに設定します。また、グリッドの視点をグリッドの最後の行にスクロールすることもできます(可視グリッドの領域外の場合)。

var lastRowIndex = this.grvCustomer.Rows.Count - 1; 

this.grvCustomer.ClearSelection(); 
this.grvCustomer.Rows[lastRowIndex].Selected = true; 
this.grvCustomer.FirstDisplayedScrollingRowIndex = lastRowIndex; 

EDIT:

変更された行が知られていない場合は、あなたが行のコレクションを列挙し、の値に一致する顧客ID列の下のセルの値を見つける必要がありダイアログフォーム。

foreach (DataGridViewRow row in this.grvCustomer.Rows) 
{ 
    if (row.Cells["CustomerID"].Value.ToString() == addCustomerForm.customer.CustomerID.ToString()) 
    { 
     row.Selected = true; 
     break; 
    } 
} 
+0

ありがとうございます。私はレコードを変更してリストの途中で、特定のr値(顧客ID)のecordは私にとってはより良いものでした。 – Masoud

+0

この場合、行を列挙し、顧客IDダイアログの値と一致する行を見つける必要があります。私の答えの修正版を見てください。 –

関連する問題