c# - 我在哪里放置最后添加记录的突出显示代码?

标签 c# winforms focus

我的程序有两种形式 - MainForm(Mainform)SubForm(Add_Student)MainFormStudent_DataGridView 显示学生的所有记录。 SubForm(AddStudent) 添加新学生。

我的任务是使用 SubForm(Add_Students) 添加新学生。我做到了!:)

下一个任务是在 MainForm 上突出显示 Student_DataGridView 中的最新记录。我做到了!:)

但是我不知道将最后添加的记录突出显示的代码放在哪里。我试着把事件:

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

但是当显示 MainForm 时它总是有效。而且我只需要在添加新记录后显示。哪个是事件?

或者我应该把代码放在哪里更好?

最佳答案

您需要将行标记为新行。 我不知道他们是新的多久:

  • 添加后首先重新加载列表
  • 直到应用关闭
  • 一段时间...

根据不同的解决方案。 如果您只在应用程序运行时需要它,您可以使用该行的 Tag 属性并在它不再是新的之后创建和删除它时在其中放置一个标志。 最简单的是:

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


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

如果它应该在不止一个启动/在不同的应用程序实例上持久存在,我会在表中创建一个新字段来存储标志、创建日期或任何适合您在数据库中需要的内容并使其持久存在。

关于c# - 我在哪里放置最后添加记录的突出显示代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8269753/

相关文章:

c# - 在 ASP.NET Core 中解密 ".AspNetCore.Session"cookie

c# - 通用列表的通用扩展方法

winforms - 从另一个运行空间向表单添加元素

c# - 桌面上方的 float 图标

javascript - 如何更改jsp <form :input/> via JavaScript with a barcode reader?的焦点

javascript - jQuery:如何知道输入元素是否有焦点

Java requestFocus() 在构造函数中不起作用

c# - 使用程序集作为许可证文件的优点/缺点?

c# - WPF Gmap.NET 添加大量标记

c# - 如何让 .NET WinForms 组件使用 SET 时区而不是客户端时区?