Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

kako pokrenuti neki formu u design modu klikom na neki od property-a u Properties Window-u

[es] :: .NET :: .NET Desktop razvoj :: kako pokrenuti neki formu u design modu klikom na neki od property-a u Properties Window-u

[ Pregleda: 1904 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

rossonerri
Sarajevo

Član broj: 148138
Poruke: 10
*.europronet.ba.



Profil

icon kako pokrenuti neki formu u design modu klikom na neki od property-a u Properties Window-u17.04.2009. u 16:51 - pre 181 meseci
Dakle, problem koji imam je sljedeci:
Napravio sam user controlu i ona posjeduje nekoliko property-a.Naravno mogu da ih podesim i u design modu putem Properties prozora gdje se uredno pojavljuju. Medjutim, meni treba mogucnost da pokrenem jednu formu klikom na jedan od property-a u Properties prozoru. Konkretno, potrebno mi je da se prikaze pored datog property-a onaj mali button sa tri tackice kako bi mogao da pokrenem tu formu u design modu. Pa ako ima neko rjesenje kako da ovo uradim bio bih mu extra zahvalan
 
Odgovor na temu

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 572
93.87.155.*

Jabber: DarkMan


Profil

icon Re: kako pokrenuti neki formu u design modu klikom na neki od property-a u Properties Window-u17.04.2009. u 17:25 - pre 181 meseci
Da li si mislio nesto ovako:

Code:

using System;
using System.Drawing.Design;
using System.ComponentModel;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public class NekaKontrola: UserControl
    {
        private string m_NekoSvojstvo = string.Empty;

        [Editor(typeof(NekiEditor), typeof(UITypeEditor))]
        public string NekoSvojstvo
        {
            get { return m_NekoSvojstvo; }
            set { m_NekoSvojstvo = value; }
        }

        public NekaKontrola()
        {
        }
    }


    public class NekiEditor: UITypeEditor
    {

        public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
        {
            return UITypeEditorEditStyle.Modal;
        }

        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            if(context != null) {
                Form form = new Form();
                form.ShowDialog();
                form.Dispose();
            }
            return base.EditValue(context, provider, value);
        }
    }
}


Dodaj ovu kontrolu na neku formu, selektuj tu kontrolu i onda klikni na "..." od property-a NekoSvojstvo, trebalo bi da ti se pojavi prazna forma.
 
Odgovor na temu

rossonerri
Sarajevo

Član broj: 148138
Poruke: 10
80.65.171.*



Profil

icon Re: kako pokrenuti neki formu u design modu klikom na neki od property-a u Properties Window-u17.04.2009. u 18:06 - pre 181 meseci
Bravo majstore to je to. Vec sam vidio nesto slicno sa koristenjem UITypeEditor klase al mi se nesto nije dalo cackati sa tim. Uglavnom ovo sam podesio i radi sto je najvaznije. Jos jednom hvala puno
 
Odgovor na temu

rossonerri
Sarajevo

Član broj: 148138
Poruke: 10
80.65.171.*



Profil

icon Re: kako pokrenuti neki formu u design modu klikom na neki od property-a u Properties Window-u17.04.2009. u 19:17 - pre 181 meseci
Pozdrav, imam jos jedan mali problem sa ovim. Naime, ovo sve radi kada koristim npr. kao sto ti ovdje navede string property na osnovu kojeg cu otvoriti formu i onda nesto sto tamo uradim setovati u ovaj property. Medjutim, u mom programu je potrebno da vratim citav objekat npr.

private ControlConfig control;

public ControlConfig control
{
get {return control;}
set {control = value;}
}

Ako ovako nesto uradim, vise mi se ne prikazuju one tri tackice pored ovog property-a u designer modu nego mi se pokaze strelica da izaberem nesto od ponudjenog. Posto objekat jos uvijek nije stvoren ponudi mi (none). Ako kreiram objekat:

ControlConfig control = new ControlConfig();

desi se fatal error:D, jer ocigledno pri svakom otvaranju projekta kreira se ovaj objekat (koji je data forma) i Visual Studio pada.
Pa ako imas kakav dobar prijedlog kako da ovo rijesim, hvala unaprijed:D
 
Odgovor na temu

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 572
93.87.155.*

Jabber: DarkMan


Profil

icon Re: kako pokrenuti neki formu u design modu klikom na neki od property-a u Properties Window-u18.04.2009. u 10:07 - pre 181 meseci
Treba ti TypeConverter atribut. Evo i primera:

Code:

using System;
using System.Drawing.Design;
using System.ComponentModel;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public class NekaKontrola: UserControl
    {
        private Control m_NekoSvojstvo = new Control();

        [Editor(typeof(NekiEditor), typeof(UITypeEditor))]
        [TypeConverter(typeof(MojTypeConverter))]
        public Control NekoSvojstvo
        {
            get { return m_NekoSvojstvo; }
            set { m_NekoSvojstvo = value; }
        }

        public NekaKontrola()
        {
        }
    }


    public class NekiEditor: UITypeEditor
    {

        public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
        {
            return UITypeEditorEditStyle.Modal;
        }

        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            if(context != null) {
                Form form = new Form();
                form.ShowDialog();
                form.Dispose();
            }
            return base.EditValue(context, provider, value);
        }
    }

    public class MojTypeConverter: TypeConverter
    {
        public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
        {
            if(value is Control && destinationType == typeof(string)) {
                return ((Control)value).Name;
            }
            return base.ConvertTo(context, culture, value, destinationType);
        }
    }
}
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: kako pokrenuti neki formu u design modu klikom na neki od property-a u Properties Window-u

[ Pregleda: 1904 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.