From 91eeab7aebbcbfaa3d539266807c1ecf918072d3 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Tue, 14 Jan 2025 08:38:40 +0100 Subject: [PATCH] add controls on load - hopefully fixes initial focus being on confirm button --- Pilz.UI.Telerik/Dialogs/RadFlyoutBase.cs | 25 ++++++++++++++++++++++-- Pilz.UI/Dialogs/FlyoutBase.cs | 14 +++++++++---- 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/Pilz.UI.Telerik/Dialogs/RadFlyoutBase.cs b/Pilz.UI.Telerik/Dialogs/RadFlyoutBase.cs index 5ac2e19..fefc297 100644 --- a/Pilz.UI.Telerik/Dialogs/RadFlyoutBase.cs +++ b/Pilz.UI.Telerik/Dialogs/RadFlyoutBase.cs @@ -7,6 +7,8 @@ namespace Pilz.UI.Telerik.Dialogs; public partial class RadFlyoutBase : UserControl { + private bool addedControlsToUi; + private RadButton radButton_Cancel; private RadButton radButton_Confirm; private TableLayoutPanel tableLayoutPanel_ActionPanel; @@ -152,6 +154,7 @@ public partial class RadFlyoutBase : UserControl ColumnCount = 3, RowCount = 1, }; + tableLayoutPanel_ActionPanel.SuspendLayout(); tableLayoutPanel_ActionPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); tableLayoutPanel_ActionPanel.ColumnStyles.Add(new ColumnStyle()); tableLayoutPanel_ActionPanel.ColumnStyles.Add(new ColumnStyle()); @@ -169,6 +172,7 @@ public partial class RadFlyoutBase : UserControl ColumnCount = 1, RowCount = 1 }; + tableLayoutPanel_TitlePanel.SuspendLayout(); tableLayoutPanel_TitlePanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); tableLayoutPanel_TitlePanel.Controls.Add(radLabel_Title, 0, 0); tableLayoutPanel_TitlePanel.RowStyles.Add(new RowStyle(SizeType.Percent, 50F)); @@ -177,9 +181,26 @@ public partial class RadFlyoutBase : UserControl // RadFlyoutBase AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - Controls.Add(tableLayoutPanel_TitlePanel); - Controls.Add(tableLayoutPanel_ActionPanel); Size = new Size(300, 150); + + tableLayoutPanel_TitlePanel.ResumeLayout(false); + tableLayoutPanel_ActionPanel.ResumeLayout(false); + } + + protected override void OnLoad(EventArgs e) + { + if (!addedControlsToUi) + { + SuspendLayout(); + Controls.Add(tableLayoutPanel_ActionPanel); + tableLayoutPanel_ActionPanel.BringToFront(); + Controls.Add(tableLayoutPanel_TitlePanel); + tableLayoutPanel_TitlePanel.BringToFront(); + ResumeLayout(false); + PerformLayout(); + addedControlsToUi = true; + } + base.OnLoad(e); } protected virtual void FlyoutDialogBase_ParentChanged(object? sender, EventArgs e) diff --git a/Pilz.UI/Dialogs/FlyoutBase.cs b/Pilz.UI/Dialogs/FlyoutBase.cs index a91687d..641119c 100644 --- a/Pilz.UI/Dialogs/FlyoutBase.cs +++ b/Pilz.UI/Dialogs/FlyoutBase.cs @@ -84,8 +84,6 @@ public partial class FlyoutBase : UserControl [MemberNotNull(nameof(button_Accept))] private void InitializeComponent() { - SuspendLayout(); - // button_Accept button_Accept = new Button { @@ -153,14 +151,22 @@ public partial class FlyoutBase : UserControl // FlyoutBase AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - Controls.Add(tableLayoutPanel_ActionPanel); - Controls.Add(tableLayoutPanel_TitlePanel); Size = new Size(300, 150); tableLayoutPanel_TitlePanel.ResumeLayout(false); tableLayoutPanel_ActionPanel.ResumeLayout(false); + } + + protected override void OnLoad(EventArgs e) + { + SuspendLayout(); + Controls.Add(tableLayoutPanel_ActionPanel); + tableLayoutPanel_ActionPanel.BringToFront(); + Controls.Add(tableLayoutPanel_TitlePanel); + tableLayoutPanel_TitlePanel.BringToFront(); ResumeLayout(false); PerformLayout(); + base.OnLoad(e); } private void FlyoutBase_ParentChanged(object? sender, EventArgs e)