Springen naar inhoud


- - - - -
VS 2015

Image Als Tooltip

VS2015

  • Log in a.u.b. om te beantwoorden
Er zijn 8 reacties in dit onderwerp

#1 mustang

mustang

    Senior Developer

  • Leden
  • PipPipPip
  • 118 berichten
    Laatst bezocht 03 aug 2022 18:37

Geplaatst op 22 juli 2022 - 10:34

hallo,

ik gebruik momenteel volgende code als tootip in mijn datagridview maar zou i.p.v. text een foto willen gebruiken als pop-up.
Is dat mogelijk ?

Code:
Sub dataGridView_CellFormatting(ByVal sender As Object, _
	ByVal e As DataGridViewCellFormattingEventArgs) _
	Handles dataGridView.CellFormatting
	If e.ColumnIndex = Me.dataGridView.Columns(5).Index _
		AndAlso (e.Value IsNot Nothing) Then
		With Me.dataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex)
			If e.Value.Equals("T60") Then
				.ToolTipText = " xxxxxx"
			ElseIf e.Value.Equals("T30") Then
				.ToolTipText = "xxxxxx"
		  
			End If
		End With
	End If
End Sub



#2 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 850 berichten
    Laatst bezocht vandaag, 11:28
  • LocatieMechelen (BE)

Geplaatst op 24 juli 2022 - 00:15

Standaard gaat dat niet en als je wat zoekt zie je wat "hacks" voorbij komen, maar dat is programmeren nu eenmaal.

https://stackoverflo...ip-using-vb-net

Meer resultaten: https://duckduckgo.c...ip image&ia=web

#3 mustang

mustang

    Senior Developer

  • Leden
  • PipPipPip
  • 118 berichten
    Laatst bezocht 03 aug 2022 18:37

Geplaatst op 24 juli 2022 - 20:28

Met een button lukt het, maar met een datagridview cell niet.
Hoe verwijs ik de tooltip naar de cell

Code:
Private Sub ParticulierDataGridView_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles ParticulierDataGridView.CellFormatting

		If e.ColumnIndex = Me.ParticulierDataGridView.Columns(5).Index _
		AndAlso (e.Value IsNot Nothing) Then
			With Me.ParticulierDataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex)

				If e.Value.Equals("T30") Then
					????????????????????????????
				
					End If
			End With
		End If
	End Sub

	Private Sub tooltip1_Draw(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawToolTipEventArgs) Handles ToolTip1.Draw
		' Draw the background and border.
		e.DrawBackground()
		e.DrawBorder()
		' Draw the text.
		Using sf As New StringFormat()
			sf.Alignment = StringAlignment.Near
			sf.LineAlignment = StringAlignment.Center
			Dim rect As New Rectangle(50, 0, e.Bounds.Width - 50, e.Bounds.Height)
			e.Graphics.DrawString(e.ToolTipText, e.Font, Brushes.Green, rect, sf)
		End Using
		' Draw the image.
		e.Graphics.DrawImage(My.Resources.Close, 9, 9)
	End Sub

	Private Sub tipButtons_Popup(ByVal sender As Object, ByVal e As System.Windows.Forms.PopupEventArgs) Handles tipButtons.Popup
		Dim wid As Integer = e.ToolTipSize.Width + 50
		Dim hgt As Integer = e.ToolTipSize.Height
		If hgt < 50 Then hgt = 50
		e.ToolTipSize = New Size(wid, hgt)
	End Sub



#4 dirka

dirka

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1241 berichten
    Laatst bezocht
  • LocatieAlvorninha, Portugal

Geplaatst op 24 juli 2022 - 23:14

Bericht bekijkenmustang, op 24 juli 2022 - 20:28, zei:

Hoe verwijs ik de tooltip naar de cell

DataGridViewCellFormattingEventArgs heeft properties RowIndex en ColumnIndex.

#5 mustang

mustang

    Senior Developer

  • Leden
  • PipPipPip
  • 118 berichten
    Laatst bezocht 03 aug 2022 18:37

Geplaatst op 25 juli 2022 - 08:27

zou u mij kunnen helpen met het in de code te verwerken want ik ken er niet veel van en geraak er niet uit.
een datagridview met text tooltip lukt en een button met image ook maar geen datagridview met image.

#6 dirka

dirka

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1241 berichten
    Laatst bezocht
  • LocatieAlvorninha, Portugal

Geplaatst op 25 juli 2022 - 16:51

Bericht bekijkenmustang, op 25 juli 2022 - 08:27, zei:

zou u mij kunnen helpen met het in de code te verwerken want ik ken er niet veel van en geraak er niet uit.
een datagridview met text tooltip lukt en een button met image ook maar geen datagridview met image.

Dat lukt wel op die manier met een Button, maar niet met DataGridViewCell. De reden daarvoor is dat een DataGridViewCell geen Control is (niet afgeleid van Control).

Kan je zeggen wat je precies probeert (desnoods met wat afbeeldingen er bij), voor we er verder energie in stoppen.

#7 mustang

mustang

    Senior Developer

  • Leden
  • PipPipPip
  • 118 berichten
    Laatst bezocht 03 aug 2022 18:37

Geplaatst op 26 juli 2022 - 10:59

ik heb een datagridview met daarin onder andere een kolom waar artikel nummers staan (vb: T250, T610, enz...).
als ik met de muis op een cel van de artikel nummers vb: "T250" ga staan wil ik dat er een tooltip/image opengaat met een kleine afbeelding van het artikel.

#8 dirka

dirka

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1241 berichten
    Laatst bezocht
  • LocatieAlvorninha, Portugal

Geplaatst op 26 juli 2022 - 17:52

Bericht bekijkenmustang, op 26 juli 2022 - 10:59, zei:

ik heb een datagridview met daarin onder andere een kolom waar artikel nummers staan (vb: T250, T610, enz...).
als ik met de muis op een cel van de artikel nummers vb: "T250" ga staan wil ik dat er een tooltip/image opengaat met een kleine afbeelding van het artikel.
Ok. Dat gaat dus niet, want daar dient een tooltip eigenlijk niet voor in een DataGridView. Dat is ook niet iets dat je wil triggeren in het CellFormatting event.
Waarom toon je niet zelf een image in het CellMouseEnter event?
Overigens nog iets: waar komt de image vandaan voor een specifieke cell (of artikel)?

#9 dirka

dirka

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1241 berichten
    Laatst bezocht
  • LocatieAlvorninha, Portugal

Geplaatst op 26 juli 2022 - 19:04

Bericht bekijkendirka, op 26 juli 2022 - 17:52, zei:

Ok. Dat gaat dus niet, want daar dient een tooltip eigenlijk niet voor in een DataGridView. Dat is ook niet iets dat je wil triggeren in het CellFormatting event.

Als je het toch wil met een Tooltip, dan kan dat op volgende manier, maar ik zie niet in waarom je daar geen eigen Form of Control zou voor gebruiken i.p.v. een ToolTip.

1. DataGridView heet JaarView
2. ToolTip heet ToolTipImage
3. Zet ToolTipImage.OwnerDraw op True
4. Zet JaarView.ShowCellToolTips op False

Noteer: hier wordt de cell.ToolTipText gezet in CellFormatting event.
Jij moet dus de image naar de ToolTipImage krijgen (vandaar mijn vraag waar die vandaan komt).

Visual Basic Code:

	Private Sub ToolTipImagePopup(sender As Object, e As PopupEventArgs) Handles ToolTipImage.Popup
		e.ToolTipSize = New Size(300, 100)
	End Sub

	Private Sub ToolTipImageDraw(sender As Object, e As DrawToolTipEventArgs) Handles ToolTipImage.Draw
		e.Graphics.FillRectangle(Brushes.BurlyWood, e.Bounds)
		e.Graphics.DrawRectangle(Pens.Black, e.Bounds)
		e.DrawText()
	End Sub

	Private Sub JaarView_CellMouseEnter(sender As Object, e As DataGridViewCellEventArgs) _
		Handles JaarView.CellMouseEnter
		If e.RowIndex >= 0 AndAlso e.ColumnIndex > 0 Then
			Dim cell = JaarView.Rows(e.RowIndex).Cells(e.ColumnIndex)
			Dim rect = JaarView.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, False)
			Dim pos = rect.Location
			pos.Offset(rect.Width \ 2, rect.Height \ 2)
			ToolTipImage.Show(cell.ToolTipText, JaarView, pos, 1000)
		End If
	End Sub



Bijlage  Schermafbeelding 2022-07-26 180111.png   40,75K   1 downloads

Ik gebruik hier ToolTip.Show, het kan ook met ToolTip.SetToolTip, maar dan moet je elders de positie aanpassen (nu wordt de Left Top van de tooltip in het midden van de cell getoond).





Ook met taq VS 2015, VS2015 voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[VS 2015] Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)