Где разместить код подсветки последней добавленной записи? - PullRequest
3 голосов
/ 25 ноября 2011

Моя программа имеет две формы - MainForm(Mainform) и SubForm(Add_Student).MainForm имеет Student_DataGridView, который показывает все записи студентов.SubForm(AddStudent) добавляет новых учеников.

Моя задача - добавить нового ученика с SubForm(Add_Students).Я сделал это!:)

Следующая задача - выделить самую новую, самую последнюю запись в Student_DataGridView на MainForm.Я сделал это!:)

Но я не знаю, куда мне поместить код подсветки последней добавленной записи.Я пытался вставить в событие:

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

Но это работает всегда, когда отображается MainForm.И мне нужно показывать только после добавления новой записи.Что такое событие?

Или куда лучше поместить код?

Ответы [ 2 ]

1 голос
/ 25 ноября 2011

вам нужно пометить строки как новые.Я не знаю, как долго они новые:

  • Первая перезагрузка списка после добавления
  • до закрытия приложения
  • период времени ...

В зависимости от этого существуют разные решения.Если вам это нужно только во время работы приложения, вы можете использовать свойство Tag строки и поместить в него флаг при создании и удалении его после того, как оно больше не будет новым.Простейшим было бы:

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


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

Если бы оно было постоянным в течение более чем одного запуска / для разных экземпляров приложения, я бы создал новое поле в таблице для хранения флага, даты создания или того, что когда-либо соответствует вашим потребностям.в базе данных и сделать его постоянным.

0 голосов
/ 29 ноября 2011

Я нашел решение :). Может быть, этот код будет вам полезен, поэтому:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...