zoukankan      html  css  js  c++  java
  • 关于扫雷游戏学习笔记(二)

    用户控件与窗体之间的传值:要实现当MineField中扫雷成功或失败,笑脸图标做出相应的改变。


    1、通过构造函数传参

    //MineField类中
    public PictureBox smile;
    
    public MineField(PictureBox pb)
    { 
          smile=pb;
          InitializeComponent();
    }
    
    //在Form.Designer中的InitializeComponent里加入
    this.mineField1 = new Mine.MineField(pictureBox1);

    这样在MineField中便可以直接调用外面的PictureBox了。
    但是会存在一个问题:窗体设计器生成的代码最好不要去修改,每次只要设计窗口一变动,Form.Designer里的代码就会重新生成,你添加的

    this.mineField1 = new Mine.MineField(pictureBox1);

    便无效,Form[设计]还会报很奇怪的异常。
    2、通过事件触发机制

    //在MineField中
    
     public delegate void MineSweepedEventSuccessfullyHandler();
    public event MineSweepedEventSuccessfullyHandler   MineSweepedSuccessfully;
    
     public delegate void MineSweepedFalledHandler();
     public event MineSweepedFalledHandler MineSweepedFalled;
    
    
     public void Falling()
            {
                if (MineSweepedFalled != null)
                {
                    MineSweepedFalled();
                }
            }
    
            public void Successful()
            {
                if (MineSweepedSuccessfully != null)
                {
                    MineSweepedSuccessfully();
                }
            }
       if(扫雷成功)  Successful();
       if(扫雷失败)  Falling();        //触发事件
     
    
    //Form中 
    
     private void Form1_Load(object sender, EventArgs e)
            {
                this.mineField1.Init(10, 10);
                this.mineField1.MineSweepedFalled +=事件处理函数名;
          this.mineField1.MineSweepedSuccessfully += 事件处理函数名;
            }  

    通过这个例子,我对事件这个概念有了更进一步的了解。

     

  • 相关阅读:
    性能测试(硬件性能指标汇总)
    jmeter中通过beanshell访问eclipse中导出jar中的java类的方法
    Linux性能优化参考
    单机到分布式集群简介
    java代码(生成日历时间)
    explian使用介绍
    java代码(处理json串)
    java代码(ascii与字母互转)
    jmeter分布式测试配置
    性能测试整体解决方案技术架构图、模型体系图、LR性能测试流程图
  • 原文地址:https://www.cnblogs.com/zuochengsi-9/p/4661696.html
Copyright © 2011-2022 走看看