プロが教えるわが家の防犯対策術!

visual basic 6.0です。
リストビューの列ヘッダーの幅を、実行中に変更できないようにするには、どのようなコードを記述すればいいでしょうか。プロパティページでは設定できませんでした。どなたか教えてください。
よろしくお願いします。

A 回答 (1件)

ヘッダ幅の変更に対するイベントは無さそうですね


対処療法ですが FormのLoadイベントでヘッダの大きさを取得しておき
リストビューの MouseMoveイベントなどでチェックといった具合かなと思います

dim HeaderWidth() as Single
Sub Form_Load()
  dim n as Intger, i as integer
  n = ListView1.Columns.Count
  redim HeaderWidth( 1 to n )
  for i = 1 to n
    HeaderWidth( i ) = ListView1.ColumnHeaders(i).Width
  next
End Sub

Sub ListView_MouseMove( Button As Integer, Shift As Integer, x As Single, y As Single )
  dim n as Intger, i as integer
  n = ListView1.Columns.Count
  if HeaderWidth( i ) <> ListView1.ColumnHeaders(i).Width then
    for i = 1 to n
      ListView1.ColumnHeaders(i).Width = HeaderWidth( i )
    next
  end if
End SUb

# ヘッダーの中でポインターが動いてるまたは
# ポインタが幅変更になっている間は
# MouseMoveへは制御が移りません
    • good
    • 0
この回答へのお礼

ありがとうございます!出来ました!
ヘッダーの中でポインターが動いてるまたはポインタが幅変更になっている間はしょうがないですよね。そもそも変更できないようにすることは出来なそうなので…残念です。でもこの方法を使ってみようと思います。
どうもありがとうございました!

お礼日時:2007/08/07 13:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A