Google
 
Web itpro-blogger.blogspot.com
日曜日, 9月 14, 2008

[VB2005]DataGridの幅を固定にする(操作不可)

▼質問

DataGridのヘッダを表示すると列の幅が変更できるんだ。これを、固定表示にしたいんだ。

どうやったらできるか教えてくれ!

▼回答

DataGridには、列の幅を固定にするプロパティはないんだ。だから固定にはできないんだ。

だけど、カスタムコントロールを作成して列の幅の変更操作をできないようにすればできるよ。

その方法の一部を下記に示しておくから参考にしてくれ!

DataGridTextBoxColumnの参考例

Public MyWidth As Integer = 0
Public MyWidthFlag As Boolean = False

'''
''' コントロールの幅を取得または設定します。
'''

''' コントロールの幅。
Public Property CustomWidth() As Integer
Get
Return MyWidth
End Get
Set(ByVal value As Integer)
Me.MyWidth = value
End Set
End Property

'''
''' コントロールの幅を固定にできるかの有無を示す値を取得または設定します。
''' 幅を固定にできる場合は true。それ以外の場合は false。既定値は false です。
'''

''' コントロールの幅を固定にできるかの有無。
Public Property CustomWidthFlag() As Boolean
Get
Return MyWidthFlag
End Get
Set(ByVal value As Boolean)
Me.MyWidthFlag = value
End Set
End Property

Private Sub DataGridCustomTextBoxColumn_WidthChanged( _
ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.WidthChanged
Dim obj As DataGridCustomTextBoxColumn = _
CType(sender, DataGridCustomTextBoxColumn)
If (obj.MyWidthFlag) Then obj.Width = obj.MyWidth
End Sub


■参考サイト

DataGridの列の幅をユーザーが変更できないようにする: .NET Tips: C#, VB.NET, Visual Studio

http://dobon.net/vb/dotnet/datagrid/lockcolumnwidth.html







Comments: コメントを投稿

<< Home

This page is powered by Blogger. Isn't yours?