Exemplo n.º 1
0
 /// <summary>
 /// 格子改变内容
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void pane_NumberChanged(object sender, NumberChangeEventArgs e)
 {
     if (this.Enabled)
     {
         Pane pane = sender as Pane;
         if (matrix[row, col] == 0 && pane.Number != 0)
         {
             empty--;
         }
         else if (matrix[row, col] != 0 && pane.Number == 0)
         {
             empty++;
         }
         int fn = matrix[row, col];
         matrix[row, col] = pane.Number;
         if (e.IsKeyEvent)
         {
             if (hisStep.Count > stepIndex + 1)
             {
                 hisStep.RemoveRange(stepIndex + 1, hisStep.Count - stepIndex + 1);
             }
             hisStep.Add(new Step(row, col, fn, pane.Number));
             stepIndex = hisStep.Count - 1;
         }
         CheckError();
         CheckStatu();
         //将pane格子的NumberChanged事件传递给窗体,调用窗体的方法
         edit(this, EventArgs.Empty);
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// 格子改变内容
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void pane_NumberChanged(object sender, NumberChangeEventArgs e)
 {
     if (this.Enabled)
     {
         if (e.IsKeyEvent)
         {
             matrix[row, col] = e.TNumber;
             if (e.FNumber == 0 && e.TNumber > 0)
             {
                 matrix.Empty--;
             }
             else if (e.FNumber > 0 && e.TNumber == 0)
             {
                 matrix.Empty++;
             }
             if (hisStep.Count > stepIndex + 1)
             {
                 hisStep.RemoveRange(stepIndex + 1, hisStep.Count - stepIndex - 1);
             }
             hisStep.Add(new Step(row, col, e.FNumber, e.TNumber));
             stepIndex = hisStep.Count - 1;
         }
         CheckError();
         CheckStatu();
         //将pane格子的NumberChanged事件传递给窗体,调用窗体的方法
         edit(this, EventArgs.Empty);
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// 设置方格的值
 /// </summary>
 /// <param name="value">值</param>
 /// <param name="isKeyEvent">是键盘输入事件</param>
 public void SetNumber(int value, bool isKeyEvent)
 {
     //是允许的值时接收
     if (value >= 0 && value < 10 && value != number)
     {
         NumberChangeEventArgs args = new NumberChangeEventArgs(isKeyEvent, number, value);
         number = value;
         this.Invalidate();
         //调用事件
         numberChanged(this, args);
     }
 }