Avatar billede bierchen Nybegynder
30. oktober 2004 - 17:17 Der er 28 kommentarer og
1 løsning

Transperant label ovenpå et billede på en PDA

Jeg er ved at lave en applikation, hvor jeg har et baggrundsbillede. Når jeg placerer en label ovenpå billedet, er hele labelen hvid ??

Hvordan kan jeg skrive noget tekst ovenpå billedet, uden at have en hvid baggrund. ?
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 17:18 #1
der er en color der hedder Color.Transparent, du kan skrive:
label1.BackColor = Color.Transparent;
Avatar billede bierchen Nybegynder
30. oktober 2004 - 17:23 #2
Labelen anvender så formens baggrundsfarve, men ikke billedet som baggrund.

Fandt noget her:  http://www.codeproject.com/ce/transparent_controls.asp?df=100&forumid=16514&exp=0&select=789121

Skal lige undersøge hvordan det virker.
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 17:25 #3
nå for den.. ! det vidste jeg ikke. hmm

altså hvis det bare skal være noget tekst så det ikke nødvendigvis er en label kan du i paint-event gøre følgende:

e.Graphics.DrawString ...
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 17:26 #4
ellers kunne man måske nedarve lablen, altså lave sin egen kontrol som ikke maler baggrunden... men det kommer nok i bund og grund til at minde lidt om at bruge e.Graphics.DrawString(...)
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 17:27 #5
..det er der faktisk een der allerede har gjort kan jeg se:
http://www.1cplusplusstreet.com/vb/scripts/ShowCode.asp?txtCodeId=2132&lngWId=10
Avatar billede bierchen Nybegynder
30. oktober 2004 - 17:32 #6
Har du lyst til at give et eksempel på at skrive f.eks : Hej ?
Avatar billede bierchen Nybegynder
30. oktober 2004 - 17:32 #7
I VB.NET
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 17:33 #8
ok, kommer her:
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 17:39 #9
dobbel klik på formen, så _Load metoden genereres, indsæt denne linie heri:

AddHandler Me.Paint, AddressOf Me.Form1_Paint

herefter putter du denne metode ind i klassen:

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)
        ' Create a local version of the graphics object for the PictureBox.
        Dim g As Graphics = e.Graphics
        g.DrawString("tekst her", _
            New Font("Arial", 10), Brushes.Red, New PointF(30.0F, 30.0F))
    End Sub
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 17:40 #10
jeg ved ikke hvordan man ellers opretter en event handler i VB...
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 17:40 #11
i C# er der et flot "lyn" nede i properties tabben, men den kunne jeg ikke finde i VB..
Avatar billede bierchen Nybegynder
30. oktober 2004 - 17:52 #12
Nu har jeg i frmmain_load indsat:
AddHandler Me.Paint, AddressOf Me.frmMain_Paint ind.

Og tilføjet funktinonen:
Private Sub frmMain_Paint(ByVal sender As Object, ByVal e As system.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
' Create a local version of the graphics object for the PictureBox.
Dim g As Graphics = e.Graphics
g.DrawString("tekst her", New Font("Arial", 10, FontStyle.Regular), New  SolidBrush(Color.Black), 30, 30)
End Sub

Men jeg kommer ikke ned i paint eventen ?
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 18:00 #13
hmm, det er mærkeligt fordi det virker hos mig. så:

1) er det en Windows Form Applikation?
2) hvis du debugger kommer du så ind i _Load metoden, og hvad sker der efterfølgende
3) får klassen tildelt en Paint event senere (pga. eksisterende funktionlitet)?
4) hvis alt går galt: post koden hvis ikke den er for lang. :)
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 18:07 #14
nååå, det er fordi at dit billede bliver tegnet oveni lablen!
Avatar billede bierchen Nybegynder
30. oktober 2004 - 18:09 #15
Hvordan kan jeg styre det, så den kommer foran ?
Avatar billede bierchen Nybegynder
30. oktober 2004 - 18:09 #16
Jeg kunne godt lide denne komponent > http://www.1cplusplusstreet.com/vb/scripts/ShowCode.asp?txtCodeId=2132&lngWId=10#zip

Kan den omskrives, så den kan anvendes på en PDA ?
Avatar billede bierchen Nybegynder
30. oktober 2004 - 18:10 #17
Hvor mange point skal du have for det ?
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 18:12 #18
jeg har desværre ingen erfaring i at udvikle til PDA, kan det gøres uden en PDA (så man på en eller anden måde slår over til compact framework, eller hvad den slags hedder nu om dage :D) ?
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 18:15 #19
ok jeg kan godt se hvordan man kommer i gang med pocketPC, prøver lige at gi' det et forsøg - men skal jo lærenoget nyt engang imellem :D
Avatar billede bierchen Nybegynder
30. oktober 2004 - 18:16 #20
Hvordan styrer jeg ellers min tekst. Sådan at den kommer foran PDA'en ?
Avatar billede bierchen Nybegynder
30. oktober 2004 - 18:23 #21
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 18:25 #22
det er nok lidt mere omstændigt... hvad var problemet med den første jeg gav link til ? måske kan jeg hjælpe med at få den til at køre
Avatar billede bierchen Nybegynder
30. oktober 2004 - 18:28 #23
Den ville ikke implementeres på i PDA miljøet. :(

Kan man styre at drawstringen skal lægges ovenpå billedet ?
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 18:30 #24
det kan jeg lige se på - kan ikke lige svare på den umidlbart. 10 minutter..
Avatar billede bierchen Nybegynder
30. oktober 2004 - 18:30 #25
ok
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 18:40 #26
ok, nu har jeg fundet ud af det tror jeg:

grunden tila t label'en bliver tegnet under picturebox'en er at først bliver frmMain tegnet, derefter alle de kontroller der ligger på den. Så når label'en bliver tegnet først, så bliver der malet oven på den når pictureboxen bliver tegnet. Det betyder at der er to løsninger:
1) man laver sin egen kontrol, ogkan dermed styre hvilken kontrol der tegnes først
2) man laver lytter på Paint eventen for pictureboxen og tegner altså oven på den istedet.

Så du skal altså vælge en af de to løsninger.

Løsning 1 kræver lidt mere arbejde, men tilgengæld kan labelen gå "udover" billedet, og derfor både stå på formen og på billedet.

Løsning 2 er hurtig, men så kan teksten altså kun stå ovenpå billedet
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 18:44 #27
og koden til løsning 2 er at erstatte:

AddHandler Me.Paint, AddressOf Me.Form1_Paint

med

AddHandler PictureBox1.Paint, AddressOf Me.Form1_Paint
Avatar billede bierchen Nybegynder
30. oktober 2004 - 20:43 #28
Tak for hjælpen !!

Jeg tager løsning 2 i drift  !!! Så må jeg lave en kontrol dernæst !!

Men mange tak !!!

Hvis du lægger et svar..... Så kvitterer jeg med nogle point !!
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 20:44 #29
tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester