C#WINFORM 选项卡 函数之间一个逻辑问题
有一个分辨率改变的函数和一个选项卡原先逻辑上是这样子的:在设计的时候“预览分辨率“在“扫描跟录像”下显示,在“文档”时不显示;当改变预览分辨率的时候就会调用上面的函数;由...
有一个分辨率改变的函数和一个选项卡
原先逻辑上是这样子的:在设计的时候“预览分辨率“在“扫描跟录像”下显示,在“文档”时不显示;当改变预览分辨率的时候就会调用上面的函数;由于函数里判断是2594x1944时,ZOOMOUT是禁止的,但是我希望当我跳选到“文档”时,ZOOMOUT.enable=true;当我跳回“扫描,录像”时,ZOOMOUT。enable=false;补充说明:由于函数只在预览分辨率改变的时候才会调用,在选项卡之间调换是不调用该函数的,所以有什么方法可以实现我上面所说的?,我原本想过设个全局的,后来放弃的了,不知道哪位高手有好的建议或者对逻辑上有什么可以改进的地方,谢谢了! 展开
原先逻辑上是这样子的:在设计的时候“预览分辨率“在“扫描跟录像”下显示,在“文档”时不显示;当改变预览分辨率的时候就会调用上面的函数;由于函数里判断是2594x1944时,ZOOMOUT是禁止的,但是我希望当我跳选到“文档”时,ZOOMOUT.enable=true;当我跳回“扫描,录像”时,ZOOMOUT。enable=false;补充说明:由于函数只在预览分辨率改变的时候才会调用,在选项卡之间调换是不调用该函数的,所以有什么方法可以实现我上面所说的?,我原本想过设个全局的,后来放弃的了,不知道哪位高手有好的建议或者对逻辑上有什么可以改进的地方,谢谢了! 展开
3个回答
展开全部
没看太明白,直接tab的SelectedIndexChanged中写
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabControl1.SelectedIndex < 2) btZoomOut.Enabled = false;
else btZoomOut.Enabled = true;
}
当然,如果你是想记录你在扫描和录像中最后的zoomout状态,也可以这样
private Boolean flag = false;
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabControl1.SelectedIndex < 2)
btZoomOut.Enabled = flag;
else btZoomOut.Enabled = true;
}
//然后将你上面的函数funcEnableUvc的最后加一行
else
{
//原代码段
}
flag=btZoomOut.Enabled;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我只想问下,为什么在选项卡切换的时候不调用一下判断的,因为在切选项卡的时候有状态变化,个人觉得在切换选项卡的事件处理会比较简单的
追问
恩,我本身也是这样子做的,我设置一个全局变量bool KEY,当选项卡为文档时就KEY=false;调用函数时加多一个判断KEY的值,当KEY=TRUE时才调用!方法是行得通,但是会造成软件运行效率上的降低!函数原本只在分辨率改变的情况下才会调用,但是如果用我的方法,就会在切换选项卡的时候也要进行调用该函数,这样效率上肯定是低了!我本意是在切换选项卡时,不需要调用该函数就能实现我的要求。
追答
如果只是这个函数的,系统开销应该不会太大,存在状态的变化,肯定是要有事件来驱动的。
不想状态变化的话,那就各自不同的一套控件,不过这样系统开销更大,而且还比较难控制。
我的意见就是这些了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在选项卡的SelectedIndexChanged事件设置ZOOMOUT.enable不可以吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询