c# 窗体Activated事件不执行

wang3wei8 2011-06-13 10:39:06
private void F_Role_Activated(object sender, EventArgs e)
{
MyDS_Grid_2 = MyDataClass.getDataSet("select roleId as 编号,roleName as 角色名 from sxRole", "sxRole");
dataGridView1.DataSource = MyDS_Grid_2.Tables[0];
}
我想每次退出另个窗体时都刷新这个窗体中datagrilview的数据,但是用Activated事件却只是加载此窗体的时候执行了一次,我退出调用的窗体(ShowDialog)回来时都不执行,找不到问题所在。 哪位高手帮忙解答下。
...全文
922 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang3wei8 2011-06-17
  • 打赏
  • 举报
回复
它不关闭我直接用按钮调用formclosing事件搞定了。功能也基本实现了。
wang3wei8 2011-06-15
  • 打赏
  • 举报
回复
private void tool_RoleAdd_Click(object sender, EventArgs e)
{
sx.Show.RoleAdd FRoleAdd = new RoleAdd();
FRoleAdd.ShowDialog(this);
if (FRoleAdd.ShowDialog() == DialogResult.OK)
{
//更新
}
}这是主窗体调用代码
private void button1_Click(object sender, EventArgs e)
{
……………
if ((int)this.Tag == 1)
{
MyDataClass.getsqlcom("insert into sxRole(roleId,roleName) values(" + AutoID + ",'" + textBox1.Text + "')");;
}
else
{
MyDataClass.getsqlcom("update sxRole set roleName='" + textBox1.Text + "' where roleId='" + ModelClass.MyModel.Role_ID + "'");
}
this.DialogResult = DialogResult.OK;
this.Close(); }子窗体保存代码,先前的问题解决了,但是新问题子窗体点保存后子窗体跳了一下没有关闭。也就是this.close()没有执行啊。
remember_me 2011-06-15
  • 打赏
  • 举报
回复
那是你没有激活窗体。
636f6c696e 2011-06-15
  • 打赏
  • 举报
回复
不如模式对话框结束后给主线程发一个消息试试
jq_whh 2011-06-15
  • 打赏
  • 举报
回复
你的代码中调用了再次FRoleAdd


sx.Show.RoleAdd FRoleAdd = new RoleAdd();
FRoleAdd.ShowDialog(this);
if (FRoleAdd.ShowDialog() == DialogResult.OK)
vrhero 2011-06-14
  • 打赏
  • 举报
回复
模式窗体属于当前窗体的子窗体,从Show到Hide整个过程父窗体并没有失去焦点,当然不会引发Deactivate事件更不会引发Activated事件...
jq_whh 2011-06-14
  • 打赏
  • 举报
回复
Activated事件在窗体被激活时产生,也就是在重新获得焦点时触发


if (this.Focused == true)
this.Invalidate();
else
this.Focus();


isjoe 2011-06-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 wang3wei8 的回复:]
private void F_Role_Activated(object sender, EventArgs e)
{
MyDS_Grid_2 = MyDataClass.getDataSet("select roleId as 编号,roleName as 角色名 from sxRole", "sxRole");
dataGridView1.DataSource = MyD……
[/Quote]


这样判断:在子窗口关闭后调用刷新代码

Form 子窗体 = new 子窗体();
if(子窗体.ShowDialog() == DialogResult.OK)
{
// 这里更新。。。。。。。。
}

// 注意在子窗体的关闭位置:this.DialogResult = DialogResult.OK
// 这样对话框关闭的就可以返回OK,用作主窗口的判断了,如果不满足条件可以返回DialogResult。Cancel

111,113

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧