public void SetupUsers(IList <User> usr) { var helper = new TranslationHelper(); var tileSz = new Size(TileSize, TileSize); var numberOfColumns = usr.Count > 0 ? Math.Min(MaxTilesPerRow, usr.Count) : MaxTilesPerRow; var numberOfRows = usr.Count / numberOfColumns + (usr.Count % numberOfColumns > 0 ? 1 : 0); this.InvokeIfRequired(() => { Width = ControlPadding + Math.Min(MaxTilesPerRow, numberOfColumns) * (ControlPadding + tileSz.Width); Height = ControlPadding + numberOfRows * (ControlPadding + tileSz.Height); }); var currentExtra = $" ({helper.GetTranslation("current_user")})"; foreach (var user in usr) { var rb = new TilePanelReborn { Tag = user, Size = tileSz, Text = user.UserName + (GlobalStorage.CurrentUser != null ? (GlobalStorage.CurrentUser.UserId == user.UserId ? currentExtra : "") : ""), Image = Resources.ic_person_white_48dp_2x, CanBeHovered = true, BackColor = ColorScheme.PrimaryColor, ForeColor = ColorScheme.ForegroundColor, Flat = true }; this.InvokeIfRequired(() => Controls.Add(rb)); rb.Click += (s, e) => { rb.InvokeIfRequired(() => { //Invoke click if (GlobalStorage.CurrentUser != null) { if (user.UserId == GlobalStorage.CurrentUser.UserId && !CanSelectCurrentUser) { return; } } OnUserClick(user); }); }; } helper.Dispose(); OnUserTilesCreated(EventArgs.Empty); }
private void AddControls(SecureUserLoginForm form) { var translationHelper = new TranslationHelper(); var usr = User; void EscapeKeyHandler(object s, KeyEventArgs ee) { if (ee.KeyCode == Keys.Escape && !ee.Control && !ee.Alt && !ee.Shift) { this.InvokeIfRequired(form.Close); ee.Handled = ee.SuppressKeyPress = true; } } var mainLabel = new Label { AutoSize = true, BackColor = Color.Transparent, Text = translationHelper.GetTranslation("user_login_simple_title"), Font = new Font(Font.FontFamily, 16), Location = new Point(0, ControlPadding) }; form.Controls.Add(mainLabel); Recenter(mainLabel, vertical: false); var userNameLabel = new Label { AutoSize = true, BackColor = Color.Transparent, Text = usr.UserName, Font = new Font(Font.FontFamily, 12), Location = new Point(0, 48) }; form.Controls.Add(userNameLabel); Recenter(userNameLabel, vertical: false); var btn = new ModernButton { Text = translationHelper.GetTranslation("user_login_okbutton"), Size = new Size(86, 38) }; btn.Location = new Point(0 /* Will be centered later */, 192 - ControlPadding - btn.Height); var point = new Point(0, 134); point.Offset(0, -8); var textBox = new TextBoxEx { Font = userNameLabel.Font, UseSystemPasswordChar = true, Size = new Size(241, 0 /* The textbox sizes automatically */) }; point.Offset(0, -textBox.Height); textBox.Location = point; form.Controls.Add(textBox); Recenter(textBox, vertical: false); //Now we can add the button click btn.Click += (s, ee) => { if (!string.IsNullOrWhiteSpace(textBox.Text)) { if (usr.CheckPassword(textBox.Text)) { //Close our smal login-form form.FormClosed += (sss, eee) => { OnLoginSucceded(usr); }; form.Close(); } else { //Password doesn't work //Clear the textbox textBox.Clear(); } } }; form.Controls.Add(btn); Recenter(btn, vertical: false); form.AcceptButton = btn; textBox.KeyUp += EscapeKeyHandler; form.KeyUp += EscapeKeyHandler; form.Load += (ss, ee) => Transition.run(form, "Opacity", 1d, new TransitionType_EaseInEaseOut(400)); translationHelper.Dispose(); form.TopMost = true; }