---
title: "Komma åt label i en UC"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/112884-komma-åt-label-i-en-uc"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "maqe"
published: "2004-10-04T08:46:38.000Z"
updated: "2004-10-05T19:56:25.000Z"
replies: 12
views: 384
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/112884-komma-åt-label-i-en-uc"
---

# Komma åt label i en UC

## #1 — maqe, 2004-10-04T08:46Z

Om jag ska komma åt en label "som ligger i en UC" från min \*aspx sida t.ex. "myLabel.Visible = true;" Hur gör man det?

Permalänk: https://www.webforum.nu/p/112884

## #2 — PDahlen, 2004-10-04T09:00Z

Skapa Get/Set properties för Labeln i din UC, precis som man gör i en klass.

Permalänk: https://www.webforum.nu/p/1451682

## #3 — maqe, 2004-10-04T09:09Z

Aha okay ... tackar ...

Permalänk: https://www.webforum.nu/p/1451693

## #4 — PDahlen, 2004-10-04T09:19Z

Om du lägger Labeln som Public i din UC tror jag även att du kommer åt den direkt utan Properties, men om man ska tänka riktig OO så bör man använda properties.

Permalänk: https://www.webforum.nu/p/1451699

## #5 — maqe, 2004-10-04T11:13Z

hm ... jag får ingen av dom alternativen att fungera ... 
Första alternativet med properties ser ut såhär
Detta är i min UC:

> public bool myProperty
> 		{
> 			get
> 			{
> 				return Price.Visible;
> 			}
> 			set
> 			{
> 				Price.Visible = value;
> 			}
> 		}

Detta min \*.aspx:

> modules.product myProduct = new Treeview.modules.product();
> 				myProduct.myProperty(true);

Jag har säkert tänkt eller gjort fel, får detta fel: 'Treeview.modules.product.myProperty' denotes a 'property' where a 'method' was expected

Och om jag sätter min label public så ser det ut såhär i min \*.aspx:

> modules.product isVisible = new Treeview.modules.product();
> 				isVisible.Price.Visible = true;

Med detta felmeddelande: Objektreferensen har inte angetts till en instans av ett objekt.

För min del så kan jag gärna använda mig av en public label i detta fall

Permalänk: https://www.webforum.nu/p/1451764

## #6 — PDahlen, 2004-10-04T11:37Z

Funkar det inte att köra

```
 public label myPrice
{
get
{
return Price;
}
set
{
Price = value;
}
}
```

Permalänk: https://www.webforum.nu/p/1451775

## #7 — maqe, 2004-10-04T12:07Z

Nix.
Såhär försöker jag använda den i min \*.aspx sida

> modules.product isVisible = new Treeview.modules.product();
> 				isVisible.Price.Visible = true;

Och får då detta meddelande:
Ett undantagsfel av typen System.StackOverflowException inträffade.

Permalänk: https://www.webforum.nu/p/1451788

## #8 — PDahlen, 2004-10-04T13:26Z

Om vi återgår till ditt förra exempel så är felet att den vill ha en method istället för en property.
Så lägg in en funktion istället där du skickar in True/False och sätter labelns.visible = värdet.
Jag är lite osäker på om C# hanterar properties annorlunda än VB.NET i det här fallet. Jag jobbar mest i VB.NET.
Kolla gärna in koden för min EmailTextBoxControl. Där använder jag Get/Set properties för mina Labels.
<http://www.pdc.se/blog/DisplayEntry.aspx?eid=25>

Permalänk: https://www.webforum.nu/p/1451840

## #9 — maqe, 2004-10-05T18:07Z

Jag tror problemet är att labeln ligger i en datalist? Någon som vet vad man ska ha för approach till detta problem?

Permalänk: https://www.webforum.nu/p/1452656

## #10 — greggan, 2004-10-05T19:08Z

nu förstår jag inte riktigt sammanhanget av alla koder, men om jag förståt det rätt så vill du kunna ändra om din label ska vara visible eller inte?

använd funktion som PDahlen säger.

Permalänk: https://www.webforum.nu/p/1452685

## #11 — maqe, 2004-10-05T19:14Z

Ja jag vill ändra en label så den blir visible = false. Och detta vill jag göra från min default.aspx sida som har en placeholder och i den placeholdern laddar jag en UC som i sin tur innehåller en datalist med denna kontrollen. Jag gjorde såhär men det kanske är en ful lösning :)

Detta ligger i min UC

> if(((\_default)this.Page).isHidden()==true) ((DataList)FindControl("PageDescription")).Items\[0\].FindControl("edit").Visible = false;

Detta ligger i min default.aspx

> public bool isHidden()
> 		{
> 			if(User.IsInRole("Developer")) return true;
> 				else return false;
> 		}

Permalänk: https://www.webforum.nu/p/1452691

## #12 — greggan, 2004-10-05T19:22Z

antingen är det här för avancerat för  mig eller så låter det bara för avancerat.. förstår nog inte riktigt.. ingen aning om vad UC är och inte placeholder heller för den delen... =/

Permalänk: https://www.webforum.nu/p/1452697

## #13 — maqe, 2004-10-05T19:56Z

Okay, UC = UserControl och placeholdern använder jag för att ladda UserControlen i på min default.aspx sida. Vore kul med en synpunkt på min lösning av någon kunnig :)

Permalänk: https://www.webforum.nu/p/1452712

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/112884-komma-åt-label-i-en-uc
