这篇日志记录一下C#中is关键字及as关键字的用法。
Is:判断检查对象是否与给定类型兼容
As:将对象转换为指定类型(强转),就跟(int)这样的用法是一样的。
获取当前窗体的活动子窗体。
有一个属性ActiveMdiChild:当前活动的子窗体
然后将当前子窗体置为活动窗体的时候触发Activated事件。
我利用这两个完成我这个小例子:
在主窗体中建立一个方法:使用is判断当前活动子窗体类型是什么类型,使用as进行强制转换,最后弹出消息。
public void GetActionForm()
{
if (this.ActiveMdiChild is FormChildOne)
{
// 强制转换
childOne = this.ActiveMdiChild as FormChildOne;
MessageBox.Show("点击了FormChildOne!");
}
else if (this.ActiveMdiChild is FormChildTwo)
{
// 强制转换
childTwo = this.ActiveMdiChild as FormChildTwo;
MessageBox.Show("点击了FormChildTwo!");
}
else
{
MessageBox.Show("点击了Form1");
}
}
将当前子窗体置为活动窗体时触发Activated事件,其中调用主窗体的GetActionForm
private void FormChildOne_Activated(object sender, EventArgs e)
{
mainForm.GetActionForm();
}
最后效果如下图所示:
主要代码就是以上这两部分,比较简单,但是如果不知道,还是比较麻烦的。
实例在文末,可下载。
有好的建议,请在下方输入你的评论。