2011-10-17 166 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'。你沒有看到它是否被選中。 –