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, 1126 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 ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Linux Tools
Administrator Web-Panel (2)

Frage von ClepToManix zum Thema Linux Tools ...

Visual Studio
C-Sharp WPF Binding TextBox.Text und Property MVVM (die 2.) (4)

Frage von mayho33 zum Thema Visual Studio ...

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

Frage von 1410640014 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (8)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...