2011-10-17 162 views
2

我有一个两个数组的小应用程序。一个数组是名字,一个数组是分数。我有一个“排序”按钮下面的代码。还有6个按不同方式排列的单选按钮。这些按钮中的5个工作,但我似乎无法通过“区域名称”工作。有时当我在数组中输入两行时,有时候不行。我一直试图弄清楚这一点近一个小时,但似乎无法弄清楚为什么它不会工作。那里有任何想法?按名称排序(字母)

private void btnSort_Click(object sender, EventArgs e) 
     { 
      int n; 
      decimal temp; 
      int sortCol = 0; 
      string ntemp; 
      bool swapFlag; 


      if (rb1.Checked) 
       sortCol = 0; 

      if (rb2.Checked) 
       sortCol = 1; 

      if (rb3.Checked) 
       sortCol = 2; 

      if (rb4.Checked) 
       sortCol = 3; 

      if (rbTotal.Checked) 
       sortCol = 4; 

      do 
      { 
       swapFlag = false; 
       for (n = 0; n < lastIndexUsed; n++) 
       { 
        if(quarters[n,sortCol] < quarters[n+1, sortCol]) 
         { 

         //column 4 
          temp = quarters[n, 4]; 
          quarters[n, 4] = quarters[n + 1, 4]; 
          quarters[n+1, 4] = temp; 

         //col 3 
          temp = quarters[n, 3]; 
          quarters[n, 3] = quarters[n + 1, 3]; 
          quarters[n + 1, 3] = temp; 

         //col 2 

          temp = quarters[n, 2]; 
          quarters[n, 2] = quarters[n + 1, 2]; 
          quarters[n + 1, 2] = temp; 

         // col 1 
          temp = quarters[n, 1]; 
          quarters[n, 1] = quarters[n + 1, 1]; 
          quarters[n + 1, 1] = temp; 

         //col 0 
          temp = quarters[n, 0]; 
          quarters[n, 0] = quarters[n + 1, 0]; 
          quarters[n + 1, 0] = temp; 

         //name 

          ntemp = Branch[n]; 
          Branch[n] = Branch[n + 1]; 
          Branch[n + 1] = ntemp; 

          swapFlag = true; 

         }//endif 

       }//for end 

      } while (swapFlag); 
+0

“区域名称”单选按钮是rbRegion。 – Brandon

回答

1

黑暗中的一个镜头:你说你有六个单选按钮,但是你只检查五个按钮,并指定排序列。如果你的五种工作正常,一种不正确,那可能就是你省略的按钮?

很难说这真的是个问题。这些字段的名称是非常不清楚的 - 在你的想法是“单选按钮6”或“按钮按地区名称排序”?命名为什么它意味着

+0

Rb1,rb2等仅仅指第1季度,第2季度等。rbtotal是所有季度加在一起。 rbRegion是区域名称。就像你说的,我似乎也认为我可能已经遗漏了一些东西,但仍然无法弄清楚这一点。 – Brandon

+0

@Brandon你不会在你发布的代码中的任何地方引用'rbRegion'。你没有看到它是否被选中。 –