vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Graphics.DrawRectangle will nicht! 
Autor: Mr. Xpert
Datum: 09.05.05 16:41

Also, ich fang mal an: Hallo leudle,

Ich hab eine Form, auf der befinden sich (um es einfach zu halten) ein ListView namens

lvw mit MultiSelect = False und ein Panel. in dieses Panel werden nachher ne ganze Menge

PictureBoxen geladen und deren BackgroundImage festgelegt (mit der normalen Image-Prop

gehts nicht). Dem ListView können Einträge hinzugefügt werden, hüchstens 16. Das sieht

dann so aus:
Sub cmdN_Click(sender As System.Object, e As System.EventArgs) Handles 
 
cmdN.Click
  Dim itm As ListViewItem = lvw.Items.Add(New ListViewItem(New String() _
   {Microsoft.VisualBasic.InputBox("Name"), _
    Microsoft.VisualBasic.InputBox("Adresse")}))
  itm.BackColor = Color.FromArgb(Microsoft.VisualBasic.QBColor(16 - itm.Index))
  itm.ForeColor = Color.FromArgb(Microsoft.VisualBasic.QBColor(itm.Index))
  If lvw.Items.Count = 16 Then cmdN.Enabled = False
End Sub
Ich weiß, jetzt kommt "QBColor? Was ist das?" oder "Benutzt du das immer

noch?", also: 1. QBColor ist eine VB.Net-VB-QuickBasic-Übernahme *ächz*, man siehe

VB.NET-Dokumentation, und 2. Ich wills mir halt einfach machen. So, weiter: die

PictureBoxen auf dem Panel sind keine "echten" PictureBoxen sondern "ExPic"s:
Private 
 
Class ExPic
  Inherits System.Windows.Forms.PictureBox
  Private p As Boolean, i As String
 
  Public Sub New()
  MyBase.New
  Me.Size = New Size(15, 15)
  End Sub
 
  Public Property Pressed As Boolean
    Get
      Return p
    End Get
    Set(v As Boolean)
      p = v
      Me.Refresh
    End Set
  End Property
 
  Public Property ImageURL As String
    Get
      Return i
    End Get
    Set(v As String)
      i = v
      Me.BackgroundImage = New Bitmap(Image.FromFile(v), Me.Size)
    End Set
  End Property
End Class
Ich weiß, ist nicht so Professionell aber mir reichts. So Wenn Man jetzt

auf so ein ExPic klickt, wird dessen Pressed-Prop umgekehrt und es Refreshd. Beim

Painten kommt dann das:
Private Sub pic_Paint(sender As Object, e As PaintEventArgs)
  If sender.Pressed And lvw.SelectedIndices(0) > 1 Then _
    e.Graphics.DrawRectangle(New 
 
Pen(lvw.SelectedItems(0).BackColor, 2), 1, 1, 13, 13)
  sender.Refresh
End Sub
Dies bewirkt, dass wenn ein Eintrag ausgewählt ist, der nicht der erste ist

(fragt mich nicht nach dem Grund), das ExPic in dessen BackColor Eingerakmt wird. Soll

zumindest. Tut aber nicht. Kann mir jemand den Fehler sagen? Danke, Ganz großes

Dankeschön an alle die mir helfen können schon im Voraus!


Wissen ist Macht - Nichts wissen macht nichts
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Graphics.DrawRectangle will nicht!946Mr. Xpert09.05.05 16:41
Re: Graphics.DrawRectangle will nicht!738Mr. Xpert10.05.05 14:49

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel