Diskuze: C#, WinForm, User control & DialogResult

C# .NET .NET (C# a Visual Basic) C#, WinForm, User control & DialogResult American English version English version

Aktivity (3)
Avatar
HONZ4
Člen
Avatar
HONZ4:15. května 17:45

Zdravím vás, vytvářím vlastní prvek (speciální button). Jde o potomka Control , IButtonControl (dědit z Buttonu nechci), ale nevím jak vytvořit vlastnost DialogResult, tak aby byla funkční po nastavení jako AcceptButton okna.
Nevíte někdo prosím?

Editováno 15. května 17:46
 
Odpovědět 15. května 17:45
Avatar
HONZ4
Člen
Avatar
HONZ4:15. května 19:39

Mám to:

[Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
public virtual DialogResult DialogResult
{
    get { return _dialogResult; }
    set
    {
        if (Enum.IsDefined(typeof(DialogResult), value))
        {
            _dialogResult = value;
        }
    }
}

private Form GetParentForm()
{
    Control c = this;
    try
    {
        while (c != null && !(c is Form))
        {
            c = c.Parent;
        }
        return (Form)c;
    }
    catch(Exception)
    {
        return null;
    }
}

protected override void OnClick(EventArgs e)
{
    Form form = GetParentForm();
    if (form != null)
    {
        form.DialogResult = _dialogResult;
        AccessibilityNotifyClients(AccessibleEvents.StateChange, -1);
        AccessibilityNotifyClients(AccessibleEvents.NameChange, -1);
    }
    base.OnClick(e);
}

Doufám, že jsem na nic nezapomněl.

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět 15. května 19:39
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.