2014-01-08 3 views
0

Итак, вот мой массив столбцов группового ящика с текстовыми полями внутри.Как включить следующий столбец вместо следующей строки?

Table

То, что я хочу сделать, это сделать так, что, когда вкладки пользователь будет перейти к следующему столбцу и остаются в той же строке.

Ex: Если пользователь находится во 2-й колонке, 1-й строке, он должен перейти в 3-й столбец 1-й строки. Однако, что происходит на основе моего кода, так это то, что он опускается вниз, когда он достигает дна, он перейдет к следующей строке и будет идти оттуда.

private System.Windows.Forms.TextBox[,] statsBonus = new System.Windows.Forms.TextBox[6, 3]; // x, y 
private System.Windows.Forms.GroupBox[] statsCol = new System.Windows.Forms.GroupBox[6]; 

    for (int j = 0; j < statsCol.Length; j++) 
    { 
     statsCol[j] = new System.Windows.Forms.GroupBox(); 
     this.statsCol[j].Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 
     this.statsCol[j].Location = new System.Drawing.Point(190 + j * 80, 20); 
     this.statsCol[j].Size = new System.Drawing.Size(72, 100); 
     this.statsCol[j].TabIndex = j + 1; 
     this.statsCol[j].TabStop = false; 
     this.statsCol[j].Text = statsLabel[j]; 
     this.groupBox2.Controls.Add(statsCol[j]); 

     for (int i = 0; i < statsBonus.GetLength(1); i++) 
     { 
      statsBonus[j, i] = new System.Windows.Forms.TextBox(); 
      this.statsBonus[j, i].Size = new System.Drawing.Size(35, 20); 
      this.statsBonus[j, i].Font = new System.Drawing.Font("Microsoft Sans Serif", 8, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 
      this.statsBonus[j, i].TabIndex = i + 1; 

      this.statsBonus[j, i].Anchor = AnchorStyles.None; 
      this.statsBonus[j, i].Dock = DockStyle.None; 
      Point pt = this.statsCol[j].DisplayRectangle.Location; 
      pt.X += (this.statsCol[j].DisplayRectangle.Width - this.statsBonus[j, i].Width)/2; 

      pt.Y = 20 + i * 25; 

      this.statsBonus[j, i].Location = pt; 
      this.statsBonus[j, i].Text = "0"; 

      statsBonus[j, i].Parent = this; 
      this.statsCol[j].Controls.Add(statsBonus[j, i]); 
     } 
    } 

ответ

0

комментарий или удалить ниже линии

//this.statsCol[j].TabIndex = j + 1; 

и Chenge ниже линии

this.statsBonus[j, i].TabIndex = i + 1; 

, как

this.statsBonus[j, i].TabIndex = statsBonus.GetLength(1)*j + i+ 1; 
+0

я удалил 'this.statsCol [J] .TabIndex = J + 1; line' и 'this.statsBonus [j, i] .TabIndex = i + 1;' Затем я добавил 'this.statsBonus [j, i] .TabIndex = statsBonus.GetLength (1) * j + 1;' во внутренней но он все равно дает мне тот же результат – puretppc

+0

@ RafaelF. Я сделал именно то, что он сказал, и попробовал то, что вы сделали, но я все равно получаю то же самое :( – puretppc

+0

@ RafaelF. Он тоже не работает. Вы проверили его, возможно, на чистом проекте? – puretppc

 Смежные вопросы

  • Нет связанных вопросов^_^