C#WINFORM 选项卡 函数之间一个逻辑问题

有一个分辨率改变的函数和一个选项卡原先逻辑上是这样子的:在设计的时候“预览分辨率“在“扫描跟录像”下显示,在“文档”时不显示;当改变预览分辨率的时候就会调用上面的函数;由... 有一个分辨率改变的函数和一个选项卡
原先逻辑上是这样子的:在设计的时候“预览分辨率“在“扫描跟录像”下显示,在“文档”时不显示;当改变预览分辨率的时候就会调用上面的函数;由于函数里判断是2594x1944时,ZOOMOUT是禁止的,但是我希望当我跳选到“文档”时,ZOOMOUT.enable=true;当我跳回“扫描,录像”时,ZOOMOUT。enable=false;补充说明:由于函数只在预览分辨率改变的时候才会调用,在选项卡之间调换是不调用该函数的,所以有什么方法可以实现我上面所说的?,我原本想过设个全局的,后来放弃的了,不知道哪位高手有好的建议或者对逻辑上有什么可以改进的地方,谢谢了!
展开
 我来答
syht2000
高粉答主

2013-07-25 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.5亿
展开全部

没看太明白,直接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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ghotos
2013-07-25 · TA获得超过280个赞
知道小有建树答主
回答量:435
采纳率:0%
帮助的人:365万
展开全部
我只想问下,为什么在选项卡切换的时候不调用一下判断的,因为在切选项卡的时候有状态变化,个人觉得在切换选项卡的事件处理会比较简单的
追问
恩,我本身也是这样子做的,我设置一个全局变量bool KEY,当选项卡为文档时就KEY=false;调用函数时加多一个判断KEY的值,当KEY=TRUE时才调用!方法是行得通,但是会造成软件运行效率上的降低!函数原本只在分辨率改变的情况下才会调用,但是如果用我的方法,就会在切换选项卡的时候也要进行调用该函数,这样效率上肯定是低了!我本意是在切换选项卡时,不需要调用该函数就能实现我的要求。
追答
如果只是这个函数的,系统开销应该不会太大,存在状态的变化,肯定是要有事件来驱动的。
不想状态变化的话,那就各自不同的一套控件,不过这样系统开销更大,而且还比较难控制。
我的意见就是这些了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chrisbadboy
2013-07-25 · TA获得超过225个赞
知道小有建树答主
回答量:332
采纳率:100%
帮助的人:177万
展开全部
在选项卡的SelectedIndexChanged事件设置ZOOMOUT.enable不可以吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式