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


visa msgbox enabrt 1 sek

Postades av 2004-07-30 09:12:59 - Johan Gräfnings, i forum vb.net, Tråden har 16 Kommentarer och lästs av 976 personer

Hallå!

Hade tänkt lägga in ett meddelande som ska visas i säg 1 sek sen försvinna utan att behöva klicka ok.
Alltså typ en msgbox som visas en viss tid.

Hur?

Programerar i VS.NET med VB.NET


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-07-30 09:35:49 - Roger Alsing

absolut lättast är att göra en egen msgbox , det är ju inte så mycket magiska saker på dom.

annars _går_ det att via subclassing av win32 meddelandena att mecka med standard msgboxen.

du kan tex snappa upp wm_showdialog där du får ett hwnd till messageboxen , med det hwnd't kan du göra det mesta med själva msgboxfönstret , stänga det , flytta det , lägga till nya saker på det osv.

men som sagt , gör en egen , så blir det lättare..

//Roger


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-07-30 11:00:52 - Johan Gräfnings

ska man bygga ett nytt formulär?
Hur får man den att visas i ex 1 sek då?

Förklara gärna lite mer....

/J


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-07-30 12:52:58 - Thomas Vanhaniemi

Du måste bestämma när formen visats åt användaren och spara Environment.TickCount() i en Integervariabel.

Och sedan använder du antingen en timer eller en egen tråd som räknar ut hur länge den har visats genom att räkna Environment.TickCount() - TickCountVariabel, och om resultatet blir 1000 eller mer har formen visats i 1 sekund...
1000 millisekunder = 1 sekund...

Skulle själv föredra att köra i en egen tråd, det är den exaktaste funktionen för att kontrollera tiden...
Och en tråd är inte svår att skapa...

Mvh,
Thomas


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-07-30 14:06:36 - Johan Gräfnings

hmm....
är inte riktigt med...kan du förklara lite mer!


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-07-30 15:45:38 - Johan Gräfnings

Detta fryser systemet
System.Threading.Thread.Sleep(4000)

annars kan man köra med timer funktionen som finns i .net

/J


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-07-30 16:43:23 - Thomas Vanhaniemi

Testa följande kod, det borde göra det du vill...

<code>
'Högst uppe i filen
Imports System.Threading

'Resten i form klassen

Private Tick As Integer = -1

Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
'Vi kör funktionen i Form.Activate eventet för att vara säkra på att användaren ser formen i 1 sekund.
'Om det inte fungerar bra sätt in den i Form.Load eventet istället.

If Tick = -1 Then
'Vår tråd som kör vid sidan om maintråden
Dim TimeThread As New Thread(AddressOf TimeLoop)

Tick = Environment.TickCount

'Startar tråden och går vidare, efter denna rad har vi två trådar som kör. Denna maintråd och den vi nyss skapat.
TimeThread.Start()
End If
End Sub

Private Sub TimeLoop()
'Loopar tills fönstret har visats i 1 sekund eller ev. liiiite mer.
Do Until Environment.TickCount - Tick >= 1000
Thread.CurrentThread.Sleep(10)
Loop

'Stänger fönstret
Me.Close()
End Sub
</code>

Mvh,
Thomas


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-07-30 16:46:41 - Andreas Hillqvist

Det är ett "fult" sätt att göra det på. Då du kommer belasta processorn helt i onödan.


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-07-30 16:48:38 - Thomas Vanhaniemi

En Sleep belastar inte procssorn lika mycket...
Självklart kan man bara ha en Sleep(1000) men det är inte riktigt exakt...

Mvh,
Thomas


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-07-30 17:20:16 - Oskar Johansson

Det är marginellt ;)

Dessutom får du tänka på att har antagligen inte har flera processorer så att hoppandet mellan trådar kommer också att ta tid. Samt skapa/förstöra fönstret


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-07-30 17:24:35 - Thomas Vanhaniemi

Allt är så marginellt, både hur mycket processorkraft det tar och tiden det tar att hoppa in och ur tråden etc...

Varför är man så rädd för att använda lite processorkraft maximalt en sekund?
Dessutom, vad kan det ökas i procent när man kör en extra tråd?! Inte många procent i alla fall...

Mvh,
Thomas


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-07-31 02:14:29 - Oskar Johansson

Nä, men det blir inte exakt. Eftersom att det endå finns ett antal saker som kan strula till det så tycker jag att en Sleep vore bättre eftersom att den inte drar något ifrån processorn i princip och är hyffsat exakt...


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-07-31 09:58:40 - Thomas Vanhaniemi

Ja, men då byter man bara ut loopen mot en Sleep(1000) istället...
Någon millisekund hit och dit är ju inget man märker precis.

Mvh,
Thomas


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-08-02 09:14:26 - Johan Gräfnings

Kör denna kod...

Dim x As New box()
x.Show()
System.Threading.Thread.Sleep(4000)
x.Close()

men då när jag öppnar boxen(winform) så hinner den inte visa allt som ska finnas i boxen innan den stängs igen.
Alltså jag får upp fönstret men inte med rätt innehåll, tiden stämmer också på ett ungefär (spelar inte någon roll om tiden inte är helt exakt).

Kör jag istället denna kod.

Public x As New box()

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Timer1.Enabled = True
x = New box()
x.Show()
End Sub

Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Timer1.Enabled = False
x.Close()
End Sub

då fungerar det som jag hade tänkt mig....

den sista lösningen kanske tar mycket minne??

/J


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-08-02 10:10:22 - Thomas Vanhaniemi

Dotnet program tar mycket minne i regel av någon anledning...
Vilken anledning vet jag inte exakt...

Har du inte försökt göra som jag skrev före men byta ut loopen i trådloopen till bara Thread.CurrentThread.Sleep(4000)?

Fungerar det med en timer så använd en timer...

Mvh,
Thomas


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-08-03 14:42:17 - Andreas Hillqvist

Eftersom Sleep "fryser" tråden. Kommer inte meddelanden i fönster kön att behandlas. Du kan testa att tvingar fönstret att rita om innan du anropar sleep.

Varför inte lägga timer kontrollen i box formuläret?


Svara

Sv: visa msgbox enabrt 1 sek

Postades av 2004-08-03 15:19:40 - Thomas Vanhaniemi

Jag tror han kör Sleep på maintråden och då är det ju självklart att det låser sig...
Men om han har en egen tråd som agerar timer och kör en sleep på den så fortsätter maintråden att snurra...

Mvh,
Thomas


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

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 570 721
27 958
271 751
5 713
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