Autor Beitrag
der.flori
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 21.07.08 11:38 
Hallo,

ich stehe vor folgendem Problem:
ich habe eine PictureBox und dafür jeweils ein Klick-/DoppelKlick-Event registriert.

Beim einfachen Klick soll ein Rahmen (BorderStyle.FixedSingle) um die Box gesetzt werden, beim Doppelklick eine Anwendung (bis jetzt nur eine MessageBox) gestartet werden.

Leider wird das Doppelklick-Ereignis jedoch nie ausgelöst.
Das is für mich unverständlich, weil beim Windows-Explorer gibt es ja die gleiche Funktionalität!
--> Beim einfachen Klick markieren und bei Doppelklick öffnen.

Gibt es eine Lösung für dieses Problem?

Es funktioniert jedoch einwandfrei, wenn ich den Rahmen weglasse und z.B. nur einen Konsolentext beim Klick-Ereignis ausgeben lasse.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 21.07.08 11:44 
Hallo und :welcome:!

Ich habe es gerade mal getestet und bei mir geht das einwandfrei. Am Besten zeigst Du mal die relevanten Quelltext-Teile.

Außerdem solltest Du prüfen, ob die Events auch richtig mit den entsprechenden Methoden verknüpft sind.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
der.flori Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 21.07.08 12:12 
Hier ein vereinfachter Codeausschnitt:

Die PictureBoxen werden dynamisch mit der Methode createLokBild() erzeugt und auf ein Panel "pGalerie" gelegt!


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
public void createLokBilder() 
{
  // dynamisches Erzeugen der PictureBox
  PictureBox LokBild = this.createLokBild(.......);
  LokBild.Location = new Point(x,y);

  // Ereignisse
  LokBild.DoubleClick += new EventHandler(LokBild_DoubleClick);
  LokBild.Click += new EventHandler(LokBild_Click);

  pGalerie.Controls.Add(LokBild);
}


private void LokBild_DoubleClick(object sender, EventArgs e)
{
  MessageBox.Show("Doppel-Klick");
}

private void LokBild_Click(object sender, EventArgs e)
{
  PictureBox pb = (PictureBox)sender;

  if (pb.BorderStyle == BorderStyle.FixedSingle)
    pb.BorderStyle = BorderStyle.None;
  else
    pb.BorderStyle = BorderStyle.FixedSingle;
}
der.flori Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 23.07.08 11:05 
Leider wird das Event für den DoppelKlick nie aufgerufen!

Ich bin deshalb immer noch ratlos, weil die Logik eigentlich stimmen müsste.