Neuer PC – Mausklick auf transparenter Picturebox reagiert nichtmehr

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Neuer PC – Mausklick auf transparenter Picturebox reagiert nichtmehr

    Hallo,

    ich programmiere nur nebenbei kleine Anwendung für den Eigenbedarf, mit VB.net und VBA. Entsprechend wenig bin ich mit der Materie vertraut.

    Im Jahr 2014 habe ich mir ein Zeichenprogramm, mit transparenter Picturebox gebastelt. Es geht darum, den Hintergrund schnell auszumessen und temporär Punkte markieren zu können. Es ist seither in Gebrauch.

    Das Programm Läuft Problemlos auf 2 AMD Windows 10 64 Rechnern mit Sockel FM1 und AM1, die ständig Updates bekommen haben. Der Neue PC hat wieder Windows 10 64, ohne Grafikkarte, ist aber ein Intel auf Sockel 1151. An der Software ist nur anders, dass das neuste VS 2017 Community installiert wurde und die Treiber für den Z270er Chipsatz des MB ausgelegt sind.

    Zum Testen habe ich auf den neuen PC, mit VS 2017 eine Anwendung erstellt, die auf Mausklicks in der Picturebox reagieren soll. Die Mausposition wird bei klick in 2 Textboxen geschrieben. Wenn die Box farbig ist, reagiert der Bereich völlig normal auf Mausklicks. Stelle ich ihn auf transparent, passiert bei Mausklicks am neuen PC nichts mehr.
    Auf den beiden AMD-Rechnern, funktioniert das neue Testprogramm aber genauso gut, wie mein altes Programm. Egal ob farbig, oder transparent, die Mausposition wird eingetragen.

    Googeln ergab nicht viel. Das Problem scheint selten gefragt zu werden und wird dann als selbstverständlich hingenommen. Lösungen gehen in Richtung Screenshot erstellen und darauf zeichnen. Das kann es aber nicht sein, wenn es bei mir doch auf 2 Rechnern funktioniert.

    Was kann ich tun?
    Ist ein Bug bei den Hardware Treibern der Onboard Grafik, der irgendwann wieder beseitigt sein wird?
    Gibt es „Imports Sytem ????“, die es beheben?
    Oder eine extra Zeile Code für den neuen Rechner?
    Funktioniert es bei euch, mit Intel Chipsätzen?
    @Hanzosoft Willkommen im Forum. :thumbup:
    Wie hast Du die PictureBox transparent gemacht?
    Opacity?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke für den freundlichen Empfang!

    Die Transparenz:
    Eigenschaften PictureBox1 Hintergrundfarbe OrangeRed, kein Hintergrundbild.
    Eigenschaften Form1 TransparencyKay OrangeRed.

    Form1

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
    3. TextBox1.Text = (MousePosition.X.ToString)
    4. TextBox2.Text = (MousePosition.Y.ToString)
    5. End Sub
    6. End Class


    Opacity? Kenne ich wahrscheinlich nicht. War das nicht die Durchsichtigkeit von Formularen? 2010 hab ich mit sowas mal gespielt, hat mir aber nicht gefallen.

    ------
    Hängt es generell mit Intel zusammen? Brauche ich für den neuen Rechner einen anderen Ansatz für die PicktureBox?
    Die ganze Hardwaregeschichte dürfte zu vernachlässigen sein. Wär übel, wenn man wegen so einer Sache für jeden PC/jede CPU und noch mehr neuen Code basteln müsste. Das Framework ist dafür da, dass man auf sehr vielen Computern das gleiche Ergebnis rausbekommt. Ich könnte mir höchstens vorstellen, dass es .Net-frameworkversionsabhängig ist. Denn TransparencyKey ist genau dafür da, wie es sich zeigt. Man legt ne Farbe fest, die im ganzen Programm als durchsichtig erkannt werden soll => man sieht durch das Programm an den Stellen durch. Und genau das macht es ja, siehe Screenshot. Da schaut man durch die PicBox durch und sieht den dahinterliegenden Teil des VisualStudios. Das ist der Sinn von TransparencyKey.
    Bilder
    • TransparencyKey.png

      2,59 kB, 411×181, 112 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Hanzosoft Was passiert, wenn Du die Transparenz mal (testweise) rausnimmst?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vielen Dank für die Hilfe!

    Das viele Installieren und Konfigurieren des neuen Systems, hat fast die ganze Woche beansprucht.

    @RodFromGermany
    Ich kann beim TransparencyKay an der Transparenz doch nichts ändern? …. und zum Zeichnen, sollte man schon was erkennen.

    Heute hab ich die Software so umgeschrieben, dass sie Screenshots lädt und bearbeitet. Das VB-net Screenshottool funktioniert übrigens ganz normal.

    Vorhin hab ich noch eine Textbox transparent gemacht. Am AMD PC erscheint bei Tastatureingaben die MessageBox, am Intel PC keine Reaktion.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
    3. MessageBox.Show("Klick")
    4. End Sub
    5. End Class


    Da ist irgendwo noch ein Bug. Die Treiber zum Chipsatz werden noch Bananen sein, die beim Kunden reifen. Alle 2 Tage kommt ein Update für den Audiotreiber.
    Eh? Wenn BackColor der TextBox = TransparencyKey der Form, dann reagiert der TextBox.TextChanged-EventHandler nicht? Das mag jetzt etwas krass klingen, aber: Das kann/darf nicht sein.
    Ich hab die gerade genannten Punkte mal zusammengebastelt. Trotz Intel kommt ne MessageBox.
    Ist es Dir möglich, ein mit diesem fehlerhaften Verhalten enthaltenes Testprojekt hochzuladen? Da kann nur meines Erachtens was anderes nicht stimmen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Hanzosoft Wie verhält sich Dein Programm, wenn Du das ganze Transparenz-Zeugs einfach mal testweise weglässt?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!