Laden...

CF MessageBox ohne OK Button/ Form Focus

Erstellt von web vor 16 Jahren Letzter Beitrag vor 16 Jahren 7.655 Views
W
web Themenstarter:in
22 Beiträge seit 2007
vor 16 Jahren
CF MessageBox ohne OK Button/ Form Focus

Hallo,

ich möchte mit dem Compact Framework in C# eine Messagebox öffnen, welche das Programm blockiert. In einem thread wird der Netzwerkstatus geprüft, falls dieser negativ ist, wird die box geöffnet.

Ich möchte im prinzip nur wissen, wie ich eine MessageBox ohne OK-Button öffne bzw. ohne Buttons.
Wie schliesse ich diese Box nach einer bestimmten Abfrage wieder?

Bitte zu bedenken: habe nicht sehr viel Erfahrung 😉

Gruß

T
177 Beiträge seit 2007
vor 16 Jahren

Hi web,

Kenn mich nicht so aus mit CF aber vlt. funktionierts ja:

auf CodeProject:
Link

Und anstonsten instanzier doch einfach eine kleine Form, weil soviel ich weiss bei MessageBoxen die Buttons nicht komplett ausschallten kannst.

Vielleicht wenn du davon erbst und die OnPaint() Methode überschreibst... kA

Mit freundlichen Grüssen
TmikeB

W
web Themenstarter:in
22 Beiträge seit 2007
vor 16 Jahren

ja ich bastel mir ne form.

kann man eigentlich den status abrufen, ob die form gerade geöffnet ist?

D
89 Beiträge seit 2008
vor 16 Jahren

am einfachsten mit


if(myForm.Visible)
{
//wenn ja 
}
else
{
//wenn nein
}

wäre mein vorschlag

edit:

wenn du es so machst:


Form myForm = new Form();
myForm.ShowDialog();


ist das formular im fordergrund und MUSS geschlossen werden bevor du etwas anderes tun kannst .

W
web Themenstarter:in
22 Beiträge seit 2007
vor 16 Jahren

super danke

W
web Themenstarter:in
22 Beiträge seit 2007
vor 16 Jahren

kann es sein das myform.close(); da nicht so richtig hin haut? will das fenster bei ausreichender netzwerkverbindung automatisch schleissen.

oder kann man f.show(); irgendwie dazu bringen, dass auch dieses fenster im vordergrung ist und zuerst beendet werden MUSS??

T
177 Beiträge seit 2007
vor 16 Jahren

Hi web

Hat diese Frage Dexter323 nicht schon beantwortet:

wenn du es so machst:

  
Form myForm = new Form();  
myForm.ShowDialog();  
  

ist das formular im fordergrund und MUSS geschlossen werden bevor du etwas anderes tun kannst .

Mit freundlichen Grüssen
TmikeB

W
web Themenstarter:in
22 Beiträge seit 2007
vor 16 Jahren

richtig, nur geht offensichtlich mein showdialog nicht mit close zu.

D
89 Beiträge seit 2008
vor 16 Jahren

du kannst auch einfach .show() nehmen, dann müsste auch . colse ohne problem gehn... werd nachher mal schaun , wegen dem dialog !

D
89 Beiträge seit 2008
vor 16 Jahren

habe hier mal ein kleines programm erstellt, veilleicht genau das, was du brauchst ?! teste es einfach mal =)

W
web Themenstarter:in
22 Beiträge seit 2007
vor 16 Jahren

Weitere Frage:

Meine Applikation öffnet mehrere Fenster. Es soll nur immer das oberstele zu bedienen sein. Leider lassen sich bei win ce 4.1 unten in der taskleiste auch darunterliegende fenster auswählen, was schlecht ist.

das kann man wohl nicht umgehen, oder?

328 Beiträge seit 2006
vor 16 Jahren

Du reagierst auf ein Verlassen des Fokus, indem Du Die Kontrolle an das Fenster zurück gibst und es gleichzeitig in den Vordergrund holst. So kann das Fenster nicht verlassen werden.

Robert Wachtel

http://blog.robertsoft.de

W
web Themenstarter:in
22 Beiträge seit 2007
vor 16 Jahren

Das wäre also das Event LostFocus, oder?
Wie kann ich die Kontrolle an das fenster zurückgeben und es in dern Vordergrund holen?

-> compact framework 2


private void form_LostFocus(object sender, EventArgs e)
        {
            this.Activate();
            this.BringToFront();
        }

geht zb nicht. Bastel ich da ne Messagebox rein, geht die auch ununterbrochen auf, sobald ich die form öffne.
Könnte auch probleme geben, weil ich aus dieser form dann keine zweite öffnen könnte, ohne das der focus auf form 1 zurück geht?

ToMost auf true bring iurgendwie auch nicht den gewünschten effekt.

W
web Themenstarter:in
22 Beiträge seit 2007
vor 16 Jahren

Hat keiner einen Tipp?