Exemplo n.º 1
0
        private void AddRowToPanel(TableLayoutPanel panel, IList <UserModel> rowElements)
        {
            for (int i = 0; i < rowElements.Count; i++)
            {
                RowStyle temp = panel.RowStyles[0];
                panel.RowCount++;
                panel.RowStyles.Add(new RowStyle(SizeType.Absolute, 50F));
                panel.Controls.Add(new Label()
                {
                    Text     = (i + 1).ToString(),
                    Font     = new Font("Microsoft Sans Serif", 11),
                    AutoSize = true
                }, 0, panel.RowCount - 1);
                panel.Controls.Add(new Label()
                {
                    Text     = rowElements[i].username,
                    Font     = new Font("Microsoft Sans Serif", 11),
                    AutoSize = true
                }, 1, panel.RowCount - 1);

                TableLayoutPanel newPanel = new TableLayoutPanel();
                newPanel.ColumnCount = 2;
                newPanel.RowCount    = 1;
                newPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
                newPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
                newPanel.AutoSize = true;
                newPanel.Dock     = DockStyle.Fill;
                newPanel.Anchor   = (AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right);
                panel.Controls.Add(newPanel, 2, panel.RowCount - 1);

                Label newLabel1 = new Label();
                newLabel1.Click += (sender, e) => {
                    Control c = panel.GetControlFromPosition(1, panel.GetRow(newPanel));
                    SettingAccountDialog.changePassword("Set a new password: "******"Change Password", c.Text);
                };
                newLabel1.Text     = "Update";
                newLabel1.Font     = new Font("Microsoft Sans Serif", 11);
                newLabel1.Name     = "lblUpdate" + i.ToString();
                newLabel1.AutoSize = true;
                newPanel.Controls.Add(newLabel1, 0, 1);

                Label newLabel2 = new Label();
                newLabel2.Click += (sender, e) => {
                    for (int j = 0; j < panel.ColumnCount; j++)
                    {
                        Control c = panel.GetControlFromPosition(j, panel.GetRow(newPanel));
                        if (j == 1)
                        {
                            SqliteDataAccess.deleteUser(c.Text);
                        }
                        panel.Controls.Remove(c);
                    }
                    for (int j = panel.GetRow(newPanel) + 1; j < panel.RowCount; j++)
                    {
                        for (int k = 0; k < panel.ColumnCount; k++)
                        {
                            var control = panel.GetControlFromPosition(k, j);
                            if (control != null)
                            {
                                panel.SetRow(control, j - 1);
                            }
                        }
                    }
                    panel.RowStyles.RemoveAt(panel.RowCount - 1);
                    panel.RowCount--;
                    panel.ResumeLayout(false);
                    panel.PerformLayout();
                };
                newLabel2.Text     = "Delete";
                newLabel2.Font     = new Font("Microsoft Sans Serif", 11);
                newLabel2.Name     = "lblDelete" + i.ToString();
                newLabel2.AutoSize = true;
                newPanel.Controls.Add(newLabel2, 1, 1);
            }
        }
Exemplo n.º 2
0
 private void Label5_Click(object sender, EventArgs e)
 {
     SettingAccountDialog.newUser("New User");
 }