积极答复者
在外面的一个Button1中,如何在istview1里的某项中绘制一个矩形,谢谢!!!,请教高手予以帮助,谢谢!!!

问题
-
我在listvie里离自己绘制了内容(矩形),我想在外面的一个Button1中,改变矩形的填充色,请教高手予以帮助,谢谢!!!
Private Sub listView1_DrawSubItem(ByVal sender As Object, ByVal e As DrawListViewSubItemEventArgs) Handles ListView1.DrawSubItem
Dim flags As TextFormatFlags = TextFormatFlags.Left
Dim sf As New StringFormat()
Dim SubItemRect As Rectangle
Dim i As Short
Try
Select Case e.Header.TextAlign
Case HorizontalAlignment.Center
sf.Alignment = StringAlignment.Center
flags = TextFormatFlags.HorizontalCenter
Case HorizontalAlignment.Right
sf.Alignment = StringAlignment.Far
flags = TextFormatFlags.Right
End Select
' For i = 1 To ListView1.Items.Count
If e.ColumnIndex = 1 Then
SubItemRect = New Drawing.Rectangle(e.Bounds.Left + 5, e.Bounds.Top + 2, e.Bounds.Width - 10, e.Bounds.Height - 5)
e.Graphics.FillRectangle(Brushes.Green, SubItemRect)
Return
End If
e.DrawText(flags)
Finally
sf.Dispose()
End Try
End Sub
答案
-
If e.ItemIndex = 1 AndAlso e.ColumnIndex = 1 Then
SubItemRect = New Drawing.Rectangle(e.Bounds.Left + 5, e.Bounds.Top + 2, e.Bounds.Width - 10, e.Bounds.Height - 5)
e.Graphics.FillRectangle(Brushes.Green, SubItemRect)
End If
http://feiyun0112.cnblogs.com/- 已标记为答案 BoberSongModerator 2010年7月30日 6:49
全部回复
-
-
谢谢!!!还请你帮助看看:e.ColumnIndex = 1这句是用来判断列的
下面的句中,我用 If Double.TryParse(e.SubItem.Text, NumberStyles.Currency, NumberFormatInfo.CurrentInfo, subItemValue) AndAlso subItemValue = 0 Then来判断单元格是否为我要的单元格,我想通过列和行来判断是否为我要的单元格,可以做到吗,谢谢!!!
Private Sub listView1_DrawSubItem(ByVal sender As Object, ByVal e As DrawListViewSubItemEventArgs) Handles ListView1.DrawSubItem
Dim flags As TextFormatFlags = TextFormatFlags.Left
Dim sf As New StringFormat()Dim i As Short
Try
Select Case e.Header.TextAlign
Case HorizontalAlignment.Center
sf.Alignment = StringAlignment.Center
flags = TextFormatFlags.HorizontalCenter
Case HorizontalAlignment.Right
sf.Alignment = StringAlignment.Far
flags = TextFormatFlags.Right
End SelectDim subItemValue As Double
If e.ColumnIndex = 1 Then
SubItemRect = New Drawing.Rectangle(e.Bounds.Left + 5, e.Bounds.Top + 2, e.Bounds.Width - 10, e.Bounds.Height - 5)
If Double.TryParse(e.SubItem.Text, NumberStyles.Currency, _
NumberFormatInfo.CurrentInfo, subItemValue) AndAlso _
subItemValue = 0 Then
e.Graphics.FillRectangle(Brushes.Green, SubItemRect)
End IfIf Double.TryParse(e.SubItem.Text, NumberStyles.Currency, _
NumberFormatInfo.CurrentInfo, subItemValue) AndAlso _
subItemValue = 1 Then
e.Graphics.FillRectangle(Brushes.Red, SubItemRect)
End IfIf Double.TryParse(e.SubItem.Text, NumberStyles.Currency, _
NumberFormatInfo.CurrentInfo, subItemValue) AndAlso _
subItemValue = 2 Then
e.Graphics.FillRectangle(Brushes.Yellow, SubItemRect)
End IfIf Double.TryParse(e.SubItem.Text, NumberStyles.Currency, _
NumberFormatInfo.CurrentInfo, subItemValue) AndAlso _
subItemValue = 3 Then
e.Graphics.FillRectangle(Brushes.Maroon, SubItemRect)
End Ife.Graphics.DrawRectangle(Pens.Black, SubItemRect)
Return
End If
e.DrawText(flags)
Finally
sf.Dispose()
End Try
End Sub -
If e.ItemIndex = 1 AndAlso e.ColumnIndex = 1 Then
SubItemRect = New Drawing.Rectangle(e.Bounds.Left + 5, e.Bounds.Top + 2, e.Bounds.Width - 10, e.Bounds.Height - 5)
e.Graphics.FillRectangle(Brushes.Green, SubItemRect)
End If
http://feiyun0112.cnblogs.com/- 已标记为答案 BoberSongModerator 2010年7月30日 6:49