Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

C Sharp - Refresh von Panel bzw. Grafik

Frage Entwicklung C und C++

Mitglied: Heinz2511

Heinz2511 (Level 1) - Jetzt verbinden

23.12.2014 um 13:38 Uhr, 1151 Aufrufe, 2 Kommentare

Hallo,

ich benutze Visual Studio 2010 und Windows Forms.

Ich habe eine Form (formSpielfeld) mit einem Panel (panelSpielfeld) das ich mit .CreateGraphics() als Grafikobjekt für ein kleines Spiel benutze.

Nun habe ich das Problem dass wenn ich per MessageBox.Show während dem Spiel eine Meldung anzeige die Grafik des Spiels durch die MessageBox überschrieben wird, d.h wenn ich die MessageBox schliesse dann sehe ich ein graues Rechteck im Spielfeld da wo vorher die Messagebox war.

Ich habe versucht im Paint-Event des Panels ein Refresh zu machen, das hat aber nicht funktioniert.

Meine Frage ist also wie ich sicherstellen kann dass die Grafik (Panel) meines Spiel immer angezeigt\refreshed wird auch wenn zwischenzeitlich Messageboxen oder auch andere Anwendungen über dem Spiel erscheinen ?

Danke
Mitglied: 114757
23.12.2014 um 14:30 Uhr
Moin,
da kann ich dir folgenden Artikel wärmstens empfehlen:
http://www.codeproject.com/Articles/1355/Professional-C-Graphics-with-G ...
In deinem Fall ist der Abschnitt The Invalidate() Method interessant:

Zitat:
There's an additional performance-related reason. Suppose at about the same time a couple of different requests to draw part of the screen come in. Perhaps, your code has just done something to modify the document and so wants to make sure the updated document is displayed, just as in our example, while at the same time the user has just restored the window or moved another window that was covering part of the client area out of the way. By calling Invalidate(), you are giving windows a chance to notice that this has occurred. Windows can then merge the Paint events if appropriate, combining the invalidated areas, so that the painting is only done once. (Calling a method to do the painting directly from your code might needlessly result in the same area of screen being repainted more than once.) 
Gruß jodel32
Bitte warten ..
Mitglied: Heinz2511
23.12.2014 um 14:47 Uhr
Danke für die Antwort.
Aber wann bzw. wo sollte ich invalide aufrufen? nach jedem Messagebox.show?
Und wie würde ich wissen wann ich invalide aufrufen muss wenn zum Beispiel eine andere Anwendung (Notepad, Calc etc.) über meiner Spielgrafik stand?
Bitte warten ..
Ähnliche Inhalte
C und C++
C-Sharp Form über Dran n Drop an einem Panel docken (1)

Frage von Yanmai zum Thema C und C ...

Visual Studio
gelöst C Sharp Form übergreifend das Panel ändern (3)

Frage von Dipps zum Thema Visual Studio ...

Windows Server
C sharp oder Powershell oder VB? (3)

Frage von 1410640014 zum Thema Windows Server ...

C und C++
gelöst C-sharp Form buggt (2)

Frage von Yanmai zum Thema C und C ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
SAN, NAS, DAS
MSA 2050 RAID Konfig (20)

Frage von Leo-le zum Thema SAN, NAS, DAS ...

Hosting & Housing
CNAME auf FTP funkt nicht mehr (7)

Frage von Wintektiv zum Thema Hosting & Housing ...