Hallo allemaal,
Ik wil aan de hand van de invoer een nieuwe regel toevoegen aan een tablelayout. Een regel heeft een aantal textboxes, deze moeten gekopieerd worden en in de regel er onder gezet worden. Onderstaande code werkt, maar alleen wanneer ik constant een textbox uit dezelfde kolom invul. Wanneer ik een andere textbox invul, klopt de volgorde van de onderstaande regels niet meer. Zou iemand mij hierbij kunnen helpen?

Alle input wanneer ik 1 kolom gebruik

Alle input wanneer ik 2 kolommen gebruik

Alle input wanneer ik 3 kolommen gebruik. Volgorde was 1-2-3. 2 staat onderaan, maar zou dus op de één na laatste rij moeten komen.
*EDIT* Wederom vergeten om t als vraag neer te zetten. Moet nog even wennen daaraan. Kan een mod dit veranderen aub?
Ik wil aan de hand van de invoer een nieuwe regel toevoegen aan een tablelayout. Een regel heeft een aantal textboxes, deze moeten gekopieerd worden en in de regel er onder gezet worden. Onderstaande code werkt, maar alleen wanneer ik constant een textbox uit dezelfde kolom invul. Wanneer ik een andere textbox invul, klopt de volgorde van de onderstaande regels niet meer. Zou iemand mij hierbij kunnen helpen?
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| if (tablelayoutpanel1.RowCount >= 4) { tablelayoutpanel1.RowCount += 1; tablelayoutpanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize, 25F)); for (int x = 3; x < tablelayoutpanel1.RowCount; x++) { int row = tablelayoutpanel1.RowCount - 1; for (int y = 1; y < tablelayoutpanel1.ColumnCount; y++) { Control c = tablelayoutpanel1.GetControlFromPosition(y, x); TextBox alt_quantity = new TextBox(); if (c != null) { alt_quantity.Text = ((c as TextBox)).Text; alt_quantity.Dock = DockStyle.Fill; alt_quantity.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); alt_quantity.RightToLeft = System.Windows.Forms.RightToLeft.Yes; alt_quantity.TextChanged += new EventHandler(dyna_TextChanged); alt_quantity.Enter += new EventHandler(dyna_Enter); int rowPos = tablelayoutpanel1.GetRow(c); c.Dispose(); tablelayoutpanel1.Controls.Add(alt_quantity, y, rowPos + 1); } } if (row != 3) { row--; } } |

Alle input wanneer ik 1 kolom gebruik

Alle input wanneer ik 2 kolommen gebruik

Alle input wanneer ik 3 kolommen gebruik. Volgorde was 1-2-3. 2 staat onderaan, maar zou dus op de één na laatste rij moeten komen.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| TextBox org_quantity = AddDefectTable.GetControlFromPosition(i, 2) as TextBox; TextBox txt_quantity = new TextBox(); txt_quantity.Text = org_quantity.Text; txt_quantity.Dock = DockStyle.Fill; txt_quantity.RightToLeft = System.Windows.Forms.RightToLeft.Yes; txt_quantity.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); txt_quantity.TextChanged += new EventHandler(dyna_TextChanged); txt_quantity.Enter += new EventHandler(dyna_Enter); txt_quantity.Tag = AddDefectTable.RowCount - AddDefectTable.GetRow(org_quantity) - 1; org_quantity.Clear(); AddDefectTable.Controls.Add(txt_quantity, i, 3); |
*EDIT* Wederom vergeten om t als vraag neer te zetten. Moet nog even wennen daaraan. Kan een mod dit veranderen aub?
[ Voor 17% gewijzigd door ThaAresX op 20-01-2016 12:02 ]