NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
HONZ4
Člen
Avatar
HONZ4:15.5.2018 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.5.2018 17:46
 
Odpovědět
15.5.2018 17:45
Avatar
HONZ4
Člen
Avatar
HONZ4:15.5.2018 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.5.2018 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.