2011-11-25 39 views
3

我的程序有兩種形式 - MainForm(Mainform)SubForm(Add_Student)MainFormStudent_DataGridView它顯示學生的所有記錄。 SubForm(AddStudent)增加了新的學生。我在哪裏放置最後添加記錄的突出顯示代碼?

我的任務是添加新學生SubForm(Add_Students)。我做到了!:)

下一個任務是突出MainFormStudent_DataGridView的最新最新記錄。我做到了!:)

但我不知道我在哪裏把最後添加的記錄突出顯示的代碼。我試圖把事件:

private void MainForm_Activated(object sender, EventArgs e) 
{ 
    Student_DataGridView.Rows.Count - 1.Selected = true 
} 

但它總是工作時,顯示MainForm。而且只有在添加新記錄後才需要顯示。哪個是事件?

或者我把代碼放在哪裏更好?

+0

:也許這個代碼將是對您有用,這樣的嗎?你是否將新的學生對象從子表單傳遞迴父表單? – seanzi

回答

1

您需要將這些行標記爲新的行。 我不知道他們是如何長新:

  • 名單首先重裝後添加
  • ,直到應用程序被關閉
  • 一段時間...

根據所有不同的解決方案。 如果您只在應用程序運行時需要它,則可以使用該行的Tag屬性,並在創建和刪除不再新的標記後放置標記。 最簡單的是:

void SetTag(DataRow row) 
{ 
    row.Tag = true; 
} 


if(row.Tag != null && row.Tag == true) Highlight(row); 

如果它應該是持續超過一個以上的啓動/在不同的應用情況下我會在表中創建一個新的領域來存儲標誌,創建日期或什麼都適合你的需求數據庫並使其持久。

+0

thabks :)。我是否需要將所有行標記爲新行,並且在添加新行後將作爲最新行?你可以編寫標記行的代碼嗎?標記的行保存在TableAdapter中嗎? – StepUp

+0

這取決於你的需要。我不知道突出顯示應該如何表現。如果希望在添加新行後取消標記現有行,則必須遍歷行並修改/刪除標記。事情存儲在標籤中沒有寫入數據庫。如果你想持久地存儲它,你需要添加一個擬合類型的列(位,日期時間等)到你的表中,並將這個列隱藏在你的顯示控件(我認爲是GridView)中。 – Steve

0

我找到解決方案:)。你是如何加入新的學生名單

public int student_count_row = 0; 

private void MainForm_Load(object sender, EventArgs e) 
{ 
    this.StudentTableAdapter.Fill(this.registrationDataSet. Student); 
    student_count_row= Student DataGridView.Rows.Count; 
} 


private void MainForm_Activated(object sender, EventArgs e) 
{ 
    this.StudentTableAdapter.Fill(this.registrationDataSet. Student); 
    int Student _row = Student DataGridView.Rows.Count; 
if (Student p_count_row == Student_row) 
{ 
     //We do never here in this condition 
      ; 
} 
    if (Student _row > Student _count_row) 
{ 
int k = 0; 
    k = Student DataGridView.Rows.Count - 1; 
    this.StudentDataGridView.CurrentCell = this.StudentDataGridView[2, k]; 
    student_count_row = student_row; 
} 


} 

enter code here

相關問題