Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Um usercontrol ochpropertygridden i visual studio

Postades av 2004-12-25 14:19:00 - Benni Svensson, i forum c# (c-sharp), Tråden har 12 Kommentarer och lästs av 755 personer

Jag får inte till det med propertygridden i visual studio och usercontrol.
Vad jag skulle vilja ha är att i propertygridden i visual studio så skulle det dycka upp
"Horison_Verticalt" med en lista(ung som vid AllowDrop).
Där ville jag ha med:
Horizont
Verticalt

Just nu så försöker jag att bara få med dem i propertygridden
<code>

private Line_Styles m_Style = Line_Styles.Horizont;

[Description("3d line")]
public enum Line_Styles
{
Horizont,
Verticalt
}
[Description( "DrawLine style")]
[Category( "DrawLine style" )]
public Line_Styles Style
{
get
{
return m_Style;
}
set
{
m_Style = value;
Invalidate();
}
}
</code>
Någonting gör jag (som vanligt)fel, jag får inte ens upp det i propertygridden .
Några tips?


Svara

Sv: Um usercontrol ochpropertygridden i visual studio

Postades av 2004-12-25 16:00:49 - Andreas Håkansson

Benni,

Blir inte riktigt klok på vad det är du vill göra. Ska du ha två olika property av typen string, eller vill du ha ett property där man kan välja mellan värdena <b>Horizont</b> och <b>Verticalt</b>? För att du överhuvudtaget ska kunna få något att synas i propertygriddenså måste din klass ärva från minst <b>Component</b> eller någon av dess subklasser.

Följande kod visar ett exempel på båda sakerna - du får läsa på om attributet

using System;
using System.ComponentModel;

public class MyComponent : Component
{
	private string name;
	private BorderStyle borderStyle;

	public MyComponent()
	{
	}

	[
		Browsable(true),
		Category("Appearance"),
		Description("The border style."),
		DefaultValue(BorderStyle.None)
	]
	public BorderStyle BorderStyle 
	{
		get { return borderStyle; }
		set 
		{
			if( this.borderStyle != value ) 
			{
				// Det är alltid en bra idé att kolla att variabler av typen
				// enum tilldelas ett giltigt värde för just det enum:t
				if( !Enum.IsDefined(typeof(BorderStyle), value) ) 
					throw new InvalidEnumArgumentException("value", (int)value, typeof(BorderStyle));
				this.borderStyle = value;
				this.Invalidate();
			}
		}
	}

	[
		Browsable(true),
		Category("Data"),
		DefaultValue(typeof(string), ""),
		Description("The name of the component.")
	]
	public int Name
	{
		get { return this.name; }
		set
		{
			// Kontrollera så att man inte matar in ett nullvärde som namn.
			if( value == null )
				throw new ArgumentNullException("Name");

			this.name= value;
			this.Invalidate();
		}
	}
}


Nu har du lite att gå på. Jag rekommonderar dig att läsa på om de olika attributen också som jag använder i mitt exempel. Om du vill ha mer komplicerade typer som du kan "öppna" i property gridden genom att klicka på ett [+] så blir det lite svårare. Dessa implementerar man oftast i en egen klass, samt att man får implementera en type converter - en klass som ärver från <b>ExpandableObjectConverter</b>, samt lägga till attributet <b>TypeConverter</b> på din klass för att informera gridden vilken converten den skall använda för ett hämta & spara typen. Man använder även attributet <b>DesignerSerializationVisibility</b> för att beskriva hur det skall sparas i kod.

Som sagt lite svårare - jag kanske skriver ihop en artikel eller två om sånna här saker snart. :-D


Svara

Sv:Um usercontrol ochpropertygridden i visual studio

Postades av 2004-12-25 17:26:59 - Benni Svensson

Andreas.
Om jag har läst??? Jodå, men jag får det ändå inte som jag vill.
Du skall ha tack för ditt exempel, men det är ju inte excakt som jag försöker.
Detta fungera:
<code>
public class DrawLine : System.Windows.Forms.UserControl
{

private Color m_color1 = Color.DarkGray; // first color
private Color m_color2 = Color.White; // second color

public Color lineColor1
{
get { return m_color1; }
set { m_color1 = value; Invalidate(); }
}

public Color lineColor2
{
get { return m_color2; }
set { m_color2 = value; Invalidate(); }
}
</code>
Inga problem. Sen hittade jag hur man skulle få till en enum:
och den skulle tydligen ligga direkt efter namespace, alltså inte i classen.
<code>
public enum Line_Styles
{
Horizont,
Verticalt
}
</code>
Sen inne i classen:
<code>
public class DrawLine : System.Windows.Forms.UserControl
{
private Styles m_Style = Line_Styles.Horizont;
</code>
Därefter
<code>
[Description( "3d line")]
[Category( "Appearance" )]
public Styles Style
{
get
{
return m_Style;
}
set
{
m_Style = value;
Invalidate();
}
}
</code>
Detta är väll inte två olika typer av string eller??
Vad jag tänker göra är, att jag saknar line-verktyget ifrån VB, därför så ville jag göra ett eget. Jag har fixat all ritning(drawing), så det är ju bara att "spika" ihop det.
Jag har ängnat större delen av julnatten plus idag för att kolla olika källor(internet) och jag tycker nog att jag skriver som dom, men jag får inte fram vad jag vill i alla fall.



Svara

Sv: Um usercontrol ochpropertygridden i visual studio

Postades av 2004-12-25 17:39:45 - Andreas Håkansson

Benni,

Vad är det som blir fel då? Och i ärlighetensnamn så uppdaterade du ditt första inlägg med nykod för det var inte den koden som visades innan när jag svarade =)


Svara

Sv:Um usercontrol ochpropertygridden i visual studio

Postades av 2004-12-25 17:59:49 - Benni Svensson

Hej, så rätt så, jag såg att jag var fel ute, och därför så ändrade jag.
Jag får inga felmedelanden, men jag för inte in det i properties.
Tycker du att det ser rätt ut?
Jag kommer att behöva att göra ytterligare liknande, men det är meningslöst när jag inte får
den första att fungera.


Svara

Sv: Um usercontrol ochpropertygridden i visual studio

Postades av 2004-12-25 18:51:38 - Andreas Håkansson

Benni,

Allt ser rätt ut - här har du ett fungerande exempel på en kontroll med ett enum-baserat propertysom jag skev och testade nyss

using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;

namespace PropertyGridExample
{
	public enum MyStyle
	{
		Left = 1,
		Right = 2
	}

	public class MyComponent : System.Windows.Forms.UserControl
	{
		private MyStyle _style = MyStyle.Left;
		private System.ComponentModel.Container components = null;

		public MyComponent()
		{
		}

		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if(components != null)
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		public MyStyle Style
		{
			get { return this._style; }
			set { this._style = value; }
		}

		#region Component Designer generated code

			private void InitializeComponent()
			{
				this.Name = "MyComponent";
				this.Size = new System.Drawing.Size(224, 112);
			}

		#endregion
	}
}


Testa och säga hur det funkar. Propertn <b>Style</b> borde dyka upp längst ner i property gridden om du har markerat kontrollen. Men om allt du vill göra är att rita räta linjer av en viss färg så varför inte bara skapa en helt tomuser kontroll och använda dess <b>BackColor</b> property för att ange färgen på linjen, sen använder du <b>Width</b> och <b>Height</b> för att ange linjens tjocklek? :-D


Svara

Sv:Um usercontrol ochpropertygridden i visual studio

Postades av 2004-12-25 19:05:06 - Benni Svensson

När jag kolla mot din så ser jag ingen större skillnad. Menar du att när du sedan lägger in det i ett
project, så kan du se i properties "MyStyle"?

Om du kan de, då är det dags för mig att lägga av :-(


Svara

Sv: Um usercontrol ochpropertygridden i visual studio

Postades av 2004-12-25 19:41:25 - Andreas Håkansson

Benni,

Jag vet inte riktigt vad du gör, eller var du gör fel eftersom du är så blyg med information om vad som händer eller inte händer när du gör vad. Vad du måste gör (enklat) för att testa det är att skapa ett nytt winform (Windows Application) projekt. Lägg till en ny User Control och klippp in min kod i den. Sen går du ut i designen för ditt formulär (inte kontrollen utan fönstret) och i din <b>Toolbox</b> väljer du gruppen <b>My User Controls</b>.

Där kommer du hitta <b>MyComponent</b> som du lägger till på ditt formulär. Sen ser du till att du har markerat kontrollen som du nyss drog ut på ditt formulär och tittar i din Property Grid där du längst ner (troligen efter som jag inte angett någon kategori för den) så hittar du ett property som heter <b>Style</b> (inte <b>MyStyles</b> eftersom det är datatypen för propertyt, som i detta fallet är ett enum med värdena <b>Left</b> och <b>Right</b>).

Fungerar inte detta så är det antingen något fel på ditt Visual Studio och du får installera om det, eller så gör du inte exakt som jag säger varpå du måste beskrva vilken sekvens av saker som du gör så att vi kan lokalisera vad det blir fel.

Lycka till! :-D


Svara

Sv:Um usercontrol ochpropertygridden i visual studio

Postades av 2004-12-25 20:10:51 - Benni Svensson

Hej och tack för att du brör dig.
Jag har gjort exact som du har beskrivit, och naturligtvis så fungerade diit program GRRRRRRRRRRRRR.

Jag får se hur jag skall göra med mitt.


Svara

Sv: Um usercontrol ochpropertygridden i visual studio

Postades av 2004-12-25 20:12:47 - Andreas Håkansson

Benni,

Klipp in hela koden för din User Control så ska vi ta oss en titt.


Svara

Sv:Um usercontrol ochpropertygridden i visual studio

Postades av 2004-12-25 20:15:50 - Benni Svensson

OCHHHHHHHHHHHHHHHHHHHHH
NUUUUUUUUUUUUUUUUUUUUUUU
FUNGERADEEEEEEEEEEEEEEEEEEEEEE
MIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIT
Ursäkta att jag skriker, men jag har ju suttit i snart ett dygn.

Tusen tack för att du inte gav upp.


Svara

Sv: Um usercontrol ochpropertygridden i visual studio

Postades av 2004-12-25 20:18:21 - Andreas Håkansson

Benni,

Toppen! Grattis till framgången! Får man fråga vad det var som spökade eller var det bara en sån situation där helt plötsligt fungerande utan att man ändrat på något speciellt ? =)


Svara

Sv:Um usercontrol ochpropertygridden i visual studio

Postades av 2004-12-25 20:22:17 - Andreas Håkansson

Benni,

Som "tack" för mitt deltagande i ditt problem så skall jag kräva en motprestantion från din sida. Detta gör jag i egenskap av Moderator här på pellesoft. Vad jag skulle vilja att du gör är att du går igenom <b>alla</b> dina tidigare inlägg och markerar dem enligt deras nuvarande status.

Detta gör du enklast genom att gå in under <b>Forum</b> här på Pellesoft och överst där ser du en lista på alla dina öppna trådar. Markera trådar som <b>Löst</b> om de innehåller fråga + ett svar som du är nöjd med, samt som <b>Stängd</b> om du har startar en tråd som du inte fick något svar som du var nöjd med men har slutat att övervaka den tråden.

Dessa små saker gör det väldigt mycket enklare för andra besökare, både de som letar efter svar själv men även de som hjälper till att svara på frågor, genom att de enkelt kan se statusen på tråden. Du hjälper även de som svarat i din tråd med att förbättra sin statistik då deras "medverkar i lösta trådar" räknare ökar.

God jul på dig :-D


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 165
27 952
271 704
696
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies