Example #1
0
        public event EventHandler <CarInfoEventArgs> NewCarInfo; //定义了类型为EventHandler<CarInfoEventArgs>的NewCarInfo事件
        //然后再NewCar()方法中,通过调用RaiseNewCarInfo方法触发NewCarInfo,这个方法的实现检查委托是否为空,不为空引发事件

        protected virtual void RaiseNewCarInfo(string car)       //在这个方法中触发事件
        {
            NewCarInfo?.Invoke(this, new CarInfoEventArgs(car)); //简化版委托调用
            //EventHandler<CarInfoEventArgs> newCarInfo = NewCarInfo;
            //if (newCarInfo != null)
            //{
            //    newCarInfo(this, new CarInfoEventArgs(car));
            //}
        }
Example #2
0
 public void NewCar(string car)
 {
     Console.WriteLine($"New car! {car}");
     //NewCarInfo?.Invoke(this, new CarInfoEventArgs(car));
     if (NewCarInfo != null)
     {
         NewCarInfo.Invoke(this, new CarInfoEventArgs(car));
     }
 }
Example #3
0
        public void NewCar(string car)
        {
            Console.WriteLine($"CarDealer, new car {car}");

            NewCarInfo?.Invoke(this, new CarInfoEventArgs(car));
            //if (NewCarInfo != null)
            //{
            //  NewCarInfo(this, new CarInfoEventArgs(car));
            //}
        }
Example #4
0
        /// <summary>
        /// 调用注册的所有委托
        /// </summary>
        /// <param name="car"></param>
        public void NewCar(string car)
        {
            WriteLine($"CarDealer,new car {car}");
            //回调注册的方法,触发事件
            NewCarInfo?.Invoke(this, new CarInfoEventArgs(car));//等效于下边的写法

            //if (NewCarInfo!=null)
            //{
            //    NewCarInfo.Invoke(this, new CarInfoEventArgs(car));
            //}
        }
Example #5
0
        protected virtual void RaiseNewCarInfo(string car)
        {
            // Delegate类的GetInvocationList()按照调用顺序返回此多路广播委托的调用列表
            var newCarInfo = NewCarInfo.GetInvocationList();

            // 该方法的实现检查委托是否不为空,若不为空就触发事件
            if (newCarInfo != null)
            {
                // 事件一般采用带两个参数的方法:
                // 第1个参数是一个对象,包含事件的发送者;
                // 第2个参数提供了事件的相关信息;
                NewCarInfo(this, new CarInfoEventArgs(car));
            }
        }
Example #6
0
 public void NewCar(string car)
 {
     NewCarInfo?.Invoke(this, new CarInfoEventArgs(car));
 }
Example #7
0
 public void NewCar(string car)
 {
     Console.WriteLine($"CarDealer,new car {car}");
     NewCarInfo?.Invoke(this, new CarInfoEventArgs(car));
 }
Example #8
0
 public void NewCar(string car)
 {
     Console.WriteLine("调用NewCar()方法");
     NewCarInfo?.Invoke(this, new CarInfoEventArgs(car));
 }
Example #9
0
 public void NewCar(string car)
 {
     Console.WriteLine($"CarDealer,new car{car}");
     //触发事件之前要检查委托是否为null ?.
     NewCarInfo?.Invoke(this, new CarInfoEventArgs(car));
 }
Example #10
0
 public void RaiseNewCarInfo(string car)
 {
     Console.WriteLine("\nDealer, nowe auto: {0}", car);
     NewCarInfo?.Invoke(this, new CarInfoEventArgs(car));
 }
Example #11
0
 public void RaiseNewCarInfo(string car)
 {
     Console.WriteLine("\n{0}, nowe auto: {1}, czas: {2}", getName(), car, DateTime.Now);
     // emituj zdarzenie, gdy ktoś czeka!
     NewCarInfo?.Invoke(this, new CarInfoEventArgs(car));
 }
Example #12
0
        private void btnBuildTeam_Click(object sender, EventArgs e)
        {
            try
            {
                _toolbuildteam = new ToolBuildTeam((AccountInfo)cmbAccount.SelectedItem);
                _toolbuildteam.MessageChanged     += new KaixinBase.MessageChangedEventHandler(_toolbuildteam_MessageChanged);
                _toolbuildteam.ValidateCodeNeeded += new KaixinBase.ValidateCodeNeededEventHandler(_toolbuildteam_ValidateCodeNeeded);
                _toolbuildteam.BuildTeamFinished  += new GamePark.BuildTeamFinishedEventHandler(_toolbuildteam_BuildTeamFinished);

                if (cmbAccount.Items.Count <= 0 || cmbAccount.SelectedIndex < 0)
                {
                    MessageBox.Show("请选择账号!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    cmbAccount.Select();
                    return;
                }

                if (lstViewCarsInMarket.SelectedItems.Count == 0)
                {
                    MessageBox.Show("请在市场上的汽车列表里选择你需要组建的车队车型!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    lstViewCarsInMarket.Select();
                    return;
                }

                if (cmbMaxCarCount.Items.Count <= 0 || cmbMaxCarCount.SelectedIndex < 0)
                {
                    MessageBox.Show("请选择汽车数量!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    cmbMaxCarCount.Select();
                    return;
                }

                _account = cmbAccount.Items[cmbAccount.SelectedIndex] as AccountInfo;

                if (_account == null)
                {
                    return;
                }

                _modelcar = new NewCarInfo();
                ListViewItem item = lstViewCarsInMarket.SelectedItems[0];
                if (item != null)
                {
                    _modelcar.CarId    = DataConvert.GetInt32(item.SubItems[3].Text);
                    _modelcar.CarName  = item.SubItems[1].Text;
                    _modelcar.CarPrice = DataConvert.GetInt32(item.SubItems[2].Text);
                }

                if (_modelcar.CarPrice < 70000)
                {
                    MessageBox.Show("按规则70000元以下的车型,同一款车只能拥有一辆!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    lstViewCarsInMarket.Select();
                    return;
                }
                if (_modelcar.CarPrice < 200000)
                {
                    if (MessageBox.Show("根据游戏规则,不能组建汽车单价低于200000的车队!是否继续?", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
                    {
                        lstViewCarsInMarket.Select();
                        return;
                    }
                }

                _maxcarcount = DataConvert.GetInt32(cmbMaxCarCount.Items[cmbMaxCarCount.SelectedIndex].ToString());
                _exchange    = ExchangeCar.Stop;
                if (rdbExpensive.Checked)
                {
                    _exchange = ExchangeCar.Expensive;
                }
                else if (rdbCheap.Checked)
                {
                    _exchange = ExchangeCar.Cheap;
                }

                SetControlStatus(false);

                _toolbuildteam._account      = _account;
                _toolbuildteam._modelcar     = _modelcar;
                _toolbuildteam._maxcarcount  = _maxcarcount;
                _toolbuildteam._exchange     = _exchange;
                _toolbuildteam._carsInMarket = _carsInMarket;
                _toolbuildteam.BuildTeamByThread();
            }
            catch (Exception ex)
            {
                Program.ShowMessageBox("FrmBuildTeam", ex);
            }
        }
Example #13
0
 protected virtual void RaiseNewCarInfo(string car)
 {
     NewCarInfo?.Invoke(this, new CarInfoEventArgs(car));
 }