• C# zedgraph关闭再打开 属性为null (转) --做多个任务切换时,第二次打开zedgraph会不成功


    按语:
       在本人项目中,第一次运行程序,利用委托,显示曲线没有问题;切换任务后,再次利用委托进行曲线显示时,就会出现问题,无法显示曲线,其他控件无此问题。
       问题是:委托没有释放的原因,导致后面的委托没有执行。
     ====================================================================
     
    窗口1下有一个zedgraph(zg1就是zedgraph),里面有1个按钮和一个委托:

    按钮1:
    zg1.GraphPane.XAxis.Scale.Max = 3000;
    zg1.GraphPane.XAxis.Scale.Min = 0;

    委托1:
    zg1.GraphPane.XAxis.Scale.Max = 5000;
    zg1.GraphPane.XAxis.Scale.Min = 0;

    窗口2下有一个按钮,这个按钮的作用就是调用窗口1zedgraph中的委托;



    现在问题如下:
    1)当我第一次打开窗口1时(窗口1,zedgraph所在窗口初始化完毕了),此时我利用中断模式调式,发现:无论我是按下窗口1中的按钮,还是去按窗口2中的按钮:均能够正确执行”zg1.GraphPane.XAxis.Scale.Max = 3000;zg1.GraphPane.XAxis.Scale.Min = 0;” 和“zg1.GraphPane.XAxis.Scale.Max = 5000;
    zg1.GraphPane.XAxis.Scale.Min = 0;”

    为正确;


    2)但是当我第一次打开窗口1后,关闭窗口1(zedgraph所在窗口),再重新打开窗口1(关闭后第二次打开zedgraph所在窗口);
    此时:我点击窗口1(zedgraph所在窗口)的按钮,执行代码“zg1.GraphPane.XAxis.Scale.Max = 3000;
    zg1.GraphPane.XAxis.Scale.Min = 0;”为正确;
    我点击窗口2中的按钮,执行委托代码“zg1.GraphPane.XAxis.Scale.Max = 5000;
    zg1.GraphPane.XAxis.Scale.Min = 0;”,就错误,中断模式发现,此状态下代码中的“zg1.GraphPane”属性为null!!!!

    为错误!!!


    就是说为什么在窗口1关闭在重新打开(第二次打开)的情况下,别的窗口的委托函数执行到窗口1(zedgraph)所在窗口时,“zg1.GraphPane”属性为null,为错误????
    而在同样的情况下,不用别的窗口的委托,直接使用窗口1(zedgraph所在窗口)的按钮等控件时,,“zg1.GraphPane”属性为正常,为正确!!!


    我想了很久 没有想明白!

    还请高手指教了 小弟在此谢过了!!
    146点赞收藏4
     
     写回复
    4 条回复
     切换为时间正序
    请发表友善的回复…
    发表回复
     
    熙风 2012-08-11
    难道是委托没委托成功?
     
    jxy21c 2012-08-11
    可能的原因会不会是这样:
    1、打开窗口1(no1),窗口2调用的委托挂接到 窗口1(no1).zg1
    2、关闭窗口1(no1)
    3、打开窗口1(no2)
    此时在内存中窗口1(no1).zg1仍没有释放,你调试的窗口2调用的委托仍作用于这个对象即窗口1(no1).zg1,而此时窗口1(no1)已关闭,所以窗口1(no1).zg1.GraphPane为null
    打开窗口1(no2).zg1.GraphPane正常,所以你窗口1(no2)中的按钮工作正常
    建议窗口1关闭前将该委托删除
    窗口1重新打开后重新挂上该委托然后再测试下
     
    maji_lulu 2012-08-11
    似乎和单例模式有关系
     
    ddabeijixiong2012 2012-08-11
    非常感谢大家的回复!!

    更加感谢jxy21c(飞刀)的回复!!

    我只能说 您真的是太专业了!!

    真的如你所说,我在窗口关闭时将委托赋值为null,然后无论我第几次打开,都没有问题了

    哈哈

    小弟在此谢过了!

    非常感谢

    结贴咯
    https://bbs.csdn.net/topics/390170429?list=28602607
  • 相关阅读:
    多项式全家桶学习笔记
    [题解] Luogu P2000 拯救世界
    [题解] LuoguP4389 付公主的背包
    [题解] CF438E The Child and Binary Tree
    拉格朗日插值法
    bzoj2788: [Poi2012]Festival
    暑假集训test-8-29
    luoguP4768 [NOI2018]归程
    HDU6331Problem M. Walking Plan
    暑假集训test-8-28
  • 原文地址:https://www.cnblogs.com/xihong2014/p/15089849.html
Copyright © 2020-2023  润新知