- 題名: カラムヘッダの固定に関して
- 日時: 2004/01/06 15:41:23
- ID: 2044
- この記事の返信元:
- (なし)
- この記事への返信:
- [2045] Re[1]: カラムヘッダの固定に関して2004/01/06 16:57:53
- ツリーを表示
■No2044に返信(咲くらさんの記事)
幅のことと捉えましたが・・・(そういうことですか?)
幅の変化イベントを処理すればいいだけなので、どこかで幅を覚えておいて、
それと異なる場合だけ戻すようにすれば可能です。
以下は例です。(わざわざコレクション使わないでもいいですし。)
[1]
'名前で引ける形で幅を覚えておくためのコレクション
Private colColle As New Collection
[2]
'幅変更を感知するイベント処理
Sub ts_widthChanged(ByVal sender As Object, ByVal e As EventArgs)
Try
Dim cs As DataGridColumnStyle
cs = sender
'自分の定義と異なる場合に調整する
If cs.Width <> colColle(cs.MappingName) Then
cs.Width = colColle(cs.MappingName)
End If
Catch ex As Exception
End Try
End Sub
[3]
スタイルの初期化時の処理に●を追加
'・・・
Dim tstyle As New DataGridTableStyle
Dim cstyle As DataGridTextBoxColumn
cstyle = New DataGridTextBoxColumn
With cstyle
.MappingName = "CODE"
.HeaderText = "CD"
.Width = 100
.TextBox.ImeMode = ImeMode.Disable
colColle.Add(.Width, .MappingName) '●
AddHandler .WidthChanged, AddressOf ts_widthChanged '●
End With
tstyle.GridColumnStyles.Add(cstyle)
cstyle = New DataGridTextBoxColumn
With cstyle
.MappingName = "NAME"
.HeaderText = "NAME"
.Width = 200
.TextBox.ImeMode = ImeMode.Hiragana
colColle.Add(.Width, .MappingName) '●
AddHandler .WidthChanged, AddressOf ts_widthChanged '●
End With
tstyle.GridColumnStyles.Add(cstyle)
'・・・
ざっとこんな感じですね。一応・・・。
2004/01/06(Tue) 15:55:02 編集(投稿者)
はじめまして。
データグリッドでカラムヘッダをマウスでつかんで
左右に動かなくしたいのですがいい方法はあるでしょうか?
宜しければ、お知恵をお貸しください。