VB.NET 2003
win 2000
こんにちは、
下記のように、オーナードローを利用して
リストボックスに該当するデータを複数列描画しています
それに、見出しをつけたいと思っているのですが、
見当が全くつきません・・・。
どういうふうにロジックを書いたら良いでしょうか??
すみません、ご教授願えませんでしょうか?
Private Sub l_kensaku_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles lsl_kensaku.DrawItem
Try
Const Margin As Integer = 5I
Dim Item As MyListItem = DirectCast(Me.lsl_kensaku.Items(e.Index), MyListItem)
Dim myPen As New Pen(Color.Brown)
Dim Pos As PointF
Dim B As Brush
If e.State = DrawItemState.Selected Then
B = SystemBrushes.HighlightText
Else
B = SystemBrushes.WindowText
End If
e.DrawBackground()
With e.Graphics
Pos = New PointF(Margin, e.Bounds.Y)
'No
Pos.X += 10
.DrawString(Item.CD, e.Font, B, Pos)
Pos.X += 50
'"|"
.DrawString(Item.sp, e.Font, B, Pos)
Pos.X += 50
'名前
.DrawString(Item.NM, e.Font, B, Pos)
Pos.X += 100
'"|"
.DrawString(Item.sp2, e.Font, B, Pos)
Pos.X += 50
'分類
.DrawString(Item.chiku, e.Font, B, Pos)
Pos.X += 70
'右揃えにするために、描画開始位置を変更する必要があるので、
'MeasureStringメソッドを使って文字列の「幅」測定。
Dim ItemText As String
.DrawString(ItemText, e.Font, B, _
Pos.X - .MeasureString(ItemText, e.Font).Width, Pos.Y)
End With
Catch
MsgBox(Err.Number & "," & Err.Description)
↑描画設定部分のみ抜粋
↓リストボックスに追加しているロジック
Me.lsl_kensaku.Items.Add(New MyListItem(no, ssp, SNAME, ssp, Bunrui)) 'リストボックスに表示
----------------------
| 番号 | 名前 | 分類 | ←こんな感じにしたいのですが・・。
| 11111 |ああ | 03 |
| | | |
| | | |
------------------------
よろしくお願い致します.
ListViewじゃダメなんだろうか…。
できれば、オーナードローで行いたいのですが・・。
提案終了。頑張れー。
頑張ってはいるのですが・・・
どなたか、ご教授賜えませんでしょうか・・・。
http://vbnet-iku2.hp.infoseek.co.jp/cgi-bin/treecrsdx02/index.cgi?m=look&bnum=1906
解決いたしました。
それでは失礼します。
解決しましたといって、解決方法を
掲示しないなら、コミュニティに対して何ら有益な投稿ではないですよね?
きっと今後回答者は減っていくでしょう。
少なくとも、私は前科一犯として記憶させていただきます。
解決チェックを促されても無視…とかね。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200511/05110009.txt
学生のようだが、そのまま大人にならないことを願う。
#既に年齢は大人なのだろうが…。
>解決チェックを促されても無視…とかね。
かといって今更古い投稿に下手に
> [[解決]]
> 解決いたしました。
> それでは失礼します。
というような、何の中身のない、解決チェックされて、
スレッドをいたずらにあげられても困るけれどね。
正直なところ。
ツイート | ![]() |