some improvements
This commit is contained in:
89
Pilz.UI/Dialogs/FlyoutBase.cs
Normal file
89
Pilz.UI/Dialogs/FlyoutBase.cs
Normal file
@@ -0,0 +1,89 @@
|
||||
namespace Pilz.UI.Dialogs;
|
||||
|
||||
public partial class FlyoutBase : UserControl
|
||||
{
|
||||
public DialogResult Result { get; protected set; }
|
||||
public bool RegisterDialogAccept { get; set; } = true;
|
||||
public bool RegisterDialogCancel { get; set; } = false;
|
||||
|
||||
protected bool ActionPanelVisible
|
||||
{
|
||||
get => tableLayoutPanel_ActionPanel.Visible;
|
||||
set => tableLayoutPanel_ActionPanel.Visible = value;
|
||||
}
|
||||
|
||||
protected bool CancelButtonVisible
|
||||
{
|
||||
get => button_Cancel.Visible;
|
||||
set => button_Cancel.Visible = value;
|
||||
}
|
||||
|
||||
protected bool CancelButtonEnable
|
||||
{
|
||||
get => button_Cancel.Enabled;
|
||||
set => button_Cancel.Enabled = value;
|
||||
}
|
||||
|
||||
protected bool ConfirmButtonEnable
|
||||
{
|
||||
get => button_Accept.Enabled;
|
||||
set => button_Accept.Enabled = value;
|
||||
}
|
||||
|
||||
public string Title
|
||||
{
|
||||
get => label_Title.Text;
|
||||
set
|
||||
{
|
||||
label_Title.Text = value;
|
||||
SetShowTitlePanel();
|
||||
}
|
||||
}
|
||||
|
||||
public FlyoutBase()
|
||||
{
|
||||
InitializeComponent();
|
||||
ParentChanged += FlyoutBase_ParentChanged; ;
|
||||
}
|
||||
|
||||
private void FlyoutBase_ParentChanged(object sender, System.EventArgs e)
|
||||
{
|
||||
var frm = FindForm();
|
||||
if (frm != null)
|
||||
{
|
||||
if (RegisterDialogAccept)
|
||||
frm.AcceptButton = button_Accept;
|
||||
if (RegisterDialogCancel)
|
||||
frm.CancelButton = button_Cancel;
|
||||
}
|
||||
}
|
||||
|
||||
protected void Close(DialogResult result)
|
||||
{
|
||||
Result = result;
|
||||
|
||||
if (FindForm() is DialogBase dialogForm)
|
||||
dialogForm.Close();
|
||||
}
|
||||
|
||||
protected virtual bool ValidateOK()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
private void SetShowTitlePanel()
|
||||
{
|
||||
tableLayoutPanel_TitlePanel.Visible = !string.IsNullOrWhiteSpace(label_Title.Text);
|
||||
}
|
||||
|
||||
private void Button_Accept_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
if (ValidateOK())
|
||||
Close(DialogResult.OK);
|
||||
}
|
||||
|
||||
private void Button_Cancel_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
Close(DialogResult.Cancel);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user