读书人

问两个事件在哪? VB.NET解决办法

发布时间: 2012-01-06 22:55:18 作者: rapoo

问两个事件在哪? VB.NET


窗体 关闭,最小化事件是什么?

比如,界面上有个 textbox 控件,上面的两个事件会触发 textbox 的 lostfocus 事件。 我希望上两个事件能在触发textbox的lostfocus事件前触发。要怎么做?



[解决办法]
窗体 关闭,

Private Sub FrmDsRow_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
MsgBox( "close ")
End Sub

[解决办法]
to Form1_Closing 事件 和 Form1_FormClosing

VB.NET不太清楚,不过C#中有Closing和Closed两个事件,我想VB.NET中也一样吧,是不是lz看错了?

to 最小化之前触发
C#中MinimumSizeChanged可以驱动最小化,你可以在MinimumSizeChanged中写入处理textbox的代码。

C#与VB.NET在语法上有差异,具体使用方法请参看msdn


[解决办法]
Form.MinimumSizeChanged 事件
[解决办法]
事件依次是
formClosed
Form.MinimumSizeChanged
Closing和Closed的事件时有一定区别的
[解决办法]
如果要知道窗体是否被最小化了,应该是在SizeChanged事件里或重写OnSizeChanged事件后添加对WindowState的检查,比如:
protected override void OnSizeChanged(EventArgs e)
{
base.OnSizeChanged(e);
if (this.WindowState == FormWindowState.Minimized)
{
System.Console.WriteLine( "mini ");
}
}

窗体的关闭事件就是Closed事件了。
要想让最小化和关闭事件在之前发生几乎是不可能的,因为它们在发生之前一定会使其上的控件失去焦点。
[解决办法]
重载 protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
}
取WM_MINI消息
[解决办法]
关闭:
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c95c.aspx#q1109q
最小化:
同意 hbxtlhx(平民百姓)

[解决办法]
同意楼上~

读书人网 >VB Dotnet

热点推荐