|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
可怜的程序员,还是逃不出移植的命运!DevExpress.net组件包中,有一个组件是xtraTabbedMdiManager,能够将MDI窗口显现为TabControl的款式,能够说十分有用。惋惜的是,封闭标签页(即子MdiChild)不克不及经由过程双击来完成,这关于用惯了傲游等软件的伴侣来讲,有点不习气。检察xtraTabbedMdiManager的事务,只要MouseDown,MouseUp等,并没有DoubleClick,好不爽。
实在,转换一下思绪,我们能够将一连的两次MouseDown事务摹拟成一个双击事务,就能够办理下面的成绩了,真是一点就破,手艺上没有甚么难度,且看代码吧:
//经由过程MouseDown事务摹拟双击封闭标签页
privateDateTimem_LastClick=System.DateTime.Now;
privatevoidxtraTabbedMdiManager1_MouseDown(objectsender,MouseEventArgse)
{
if(e.Button==MouseButtons.Left)
{
DateTimedt=DateTime.Now;
TimeSpanspan=dt.Subtract(m_LastClick);
if(span.TotalMilliseconds<300)//假如两次点击的工夫距离小于300毫秒,则以为是双击
{
if(this.MdiChildren.Length>1)
{
if(this.ActiveMdiChild!=m_MapForm)
{
this.ActiveMdiChild.Close();
}
}
m_LastClick=dt.AddMinutes(-1);
}
else
m_LastClick=dt;
}
elseif(e.Button==MouseButtons.Right)
{
//弹出右键菜单
if(this.ActiveMdiChild!=m_MapForm)
{
POINTAPIpt=newPOINTAPI();
GetCursorPos(refpt);
System.Drawing.Pointp=newSystem.Drawing.Point(pt.x,pt.y);
popMenuCloseTab.ShowPopup(this.barManager1,p);
}
}
}
privatevoidmnuCloseTab_ItemClick(objectsender,DevExpress.XtraBars.ItemClickEventArgse)
{
if(this.ActiveMdiChild!=m_MapForm)
{
this.ActiveMdiChild.Close();
}
}
在这里,我们以为假如两次点击工夫距离小于300毫秒,就以为是双击。注重,m_LastClick=dt.AddMinutes(-1),这一行代码的感化是,暗示双击完成,制止点击三次以为是双击了两次。
下面的代码还供应了点击右链弹出菜单功效。能够在右键菜单中到场你要的功效。
因为二次编译器太复杂,那么建议只是在安装程序的时候编译一次,而不类似net网页编程那样运行就编译。并且我觉得,一次痛苦,总比多次低效率要舒服多了。 |
|