Announcement

Collapse
No announcement yet.

Picturebox fehlende Intellisense Unterstützung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Picturebox fehlende Intellisense Unterstützung

    VS2008 SP1 Vista 32bit 4GB RAM

    Habe auf ein leeres Formular eine Picturebox platziert und möchte
    nun beim klick auf diese Picturebox die Koordinaten des Klicks
    erfahren.

    Hierzu habe ich ein Onclick Ereignis in welchem Eventargs e
    auftritt.

    Beim Eintrag von e. im Eventereignis sollte doch normalerweise
    die zu Verfügung stehenden Koordinaten X/Y erscheinen.
    Es erfolgt aber überhaupt kein Vorschlag von Intellisense.

    Wie ist hierbei zu verfahren ?.

    Vielen Dank.

  • #2
    Hallo,

    Beim Eintrag von e. im Eventereignis sollte doch normalerweise die zu Verfügung stehenden Koordinaten X/Y erscheinen.
    Das ist eine völlig falsche Erwartung. Dir fehlt anscheinend noch etwas Verständnis für die Zusammenarbeit zwischen den Klassen, der IDE und dem Code-Editor. Mit dem Doppel-Click im Designer werden die unterschiedlichsten Ereignisse vorbereitet, nämlich das, was die Programmierer der IDE als "Standard-Ereignis" angesehen haben. Je nach Art des Ereignisses gibt es einfache oder spezielle EventArgs. Das Control.Click liefert ein einfaches EventArgs-Objekt, und das liefert - wie natürlich in der SDK-Doku/MSDN nachzulesen ist - keinerlei Eigenschaften; also kann auch Intellisense nichts anbieten.

    Du meinst vermutlich eher MouseClick, wo über MouseEventArgs die Position der Maus abgefragt werden kann. Wenn du das haben willst, musst du im Eigenschaften-Fenster die Ereignisse aktivieren (Button mit dem Blitz) und es dort auswählen.

    Wenn du die Position des Controls abfragen willst, dann geht es nicht über EventArgs, sondern über den sender:
    Code:
    if (sender is Control) {
       Point loc = (sender as Control).Location;
    }
    Jürgen

    Comment


    • #3
      Vielen Dank für die schnelle Antwort.


      Folgendes funktioniert bei mir einwandfrei, allerdings
      ohne Intellisense.

      Code:
      private void PicB1_MouseClick(object sender, MouseEventArgs e)
      {
          if (e.X > 100)
          {
               label1.Text=e.X.ToString();
          }
      }

      Comment


      • #4
        Hmm, vielleicht bietet das Visual Studio nur Eigenschaften mit mehr als einem Zeichen an, oder du schreibst so schnell, dass Intellisense nicht reagieren kann.

        Es ist aber schön, wenn du sonst keine Probleme hast.

        Jürgen

        Comment

        Working...
        X