tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルDATAGrid
記事No1446
投稿日: 2005/03/04(Fri) 21:41
投稿者迷惑
[OSのVer]:Windows    [VBのVer]:VB.NET  
いつもお世話になっております。
DataGridに表示されてある複数のColumnの中で一Columnのみ変更できないようには
できないでしょうか?

以上 よろしくお願いします。

[ツリー表示へ]
タイトルRe: DataGrid
記事No1447
投稿日: 2005/03/05(Sat) 14:04
投稿者じゃんぬねっと
参照先http://jeanne.wankuma.com/
こんにちは、じゃんぬねっと です。

おそらくは、DataGrid から TextBox を取り出し、
TextBox の KeyDown イベント ハンドラを作成し、
その中で、すべてのキーを Hide すれば良いかと。

それと、新たな質問をするための「形だけのフィードバック」をするのはマナー違反じゃないのですか?
まあ、私は別に良いですけど、掲示板の趣旨としては如何なものかなと。(^-^*)
hhttp://www.bcap.co.jp/hanafusa/bbs/wforum.cgi?no=1445&reno=1437&oya=1435&mode=msgview&page=0

[ツリー表示へ]
タイトルRe: DATAGrid
記事No1461
投稿日: 2005/03/11(Fri) 10:10
投稿者gtk
順当なやり方と思われる方法はTableStyleおよび、ColumnStyleを設定する方法かと思われます。
ColumnStyleには、DataGridTextBoxColumnを使用し、特定のColumn用のDataGridTextBoxColumnの
ReadOnlyプロパティをTrueにすれば編集不可能となります。
表示するデータが入っているDataSetオブジェクトをDataSet1、DataGridをDataGrid1とした場合
のサンプルが下のプログラムとなります。
もし、DataSetオブジェクト以外のデータオブジェクト(ArrayListなど)を使用している場合は、
適宜修正してください。

Dim ts As DataGridTableStyle = New DataGridTableStyle()
Dim tbl As DataTable = DataSet1.Tables(0)
Dim col As DataColumn

ts.MappingName = dataSet11.Tables[0].TableName
For Each col In tbl.Columns
    dgTextBox As DataGridTextBoxColumn = New DataGridTextBoxColumn()
    dgTextBox.MappingName = col.ColumnName
    'ここで、特定のColumnのときにReadOnlyプロパティをTrueにする
    If col.ColumnName = "編集不可能にしたいColumn名" Then
        dgTextBox.ReadOnly = True
    End If
    ts.GridColumnStyles.Add(dgTextBox)
Next
'TableStylesに上で作成したtsを追加する
Me.DataGrid1.TableStyles.Add(ts)

[ツリー表示へ]