作成日: 2017/06/12 最終更新日: 2017/06/12
文書種別
使用方法
詳細
True DBGrid for .NETの固定列(レコードセレクタ部分)には、行番号などのデータを表示することはできません。
代替方法として、非連結列を用意し、この列にコードから行番号を設定することで対応する手段が考えられますが、そのままでは横スクロール時にこの列も隠れてしまいます。
そこで、この列のFrozenプロパティをTrueに設定して固定列として扱い、さらにLockedプロパティをTrueに設定して列をロックし編集できないようにすることで、対応します。
◎サンプルコード(VB)
◎サンプルコード(C#)
代替方法として、非連結列を用意し、この列にコードから行番号を設定することで対応する手段が考えられますが、そのままでは横スクロール時にこの列も隠れてしまいます。
そこで、この列のFrozenプロパティをTrueに設定して固定列として扱い、さらにLockedプロパティをTrueに設定して列をロックし編集できないようにすることで、対応します。
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs)
' データの設定
' ...
' 非連結列を追加
Dim c = New C1DataColumn()
c.Caption = "No"
c1TrueDBGrid1.Columns.Add(c)
Dim dc = Me.c1TrueDBGrid1.Splits(0).DisplayColumns("No")
dc.Visible = True
dc.Width = 20
'非連結列を固定&ロック
dc.Frozen = True
dc.Locked = True
Dim d = c1TrueDBGrid1.Splits(0).DisplayColumns
d.RemoveAt(d.IndexOf(dc))
d.Insert(0, dc)
AddHandler c1TrueDBGrid1.UnboundColumnFetch, AddressOf C1TrueDBGrid1_UnboundColumnFetch
End Sub
' 非連結列に行番号を表示
Private Sub C1TrueDBGrid1_UnboundColumnFetch(sender As Object, e As UnboundColumnFetchEventArgs)
If e.Column.Caption = "No" Then
e.Value = Convert.ToString(e.Row + 1)
End If
End Sub
' データの設定
' ...
' 非連結列を追加
Dim c = New C1DataColumn()
c.Caption = "No"
c1TrueDBGrid1.Columns.Add(c)
Dim dc = Me.c1TrueDBGrid1.Splits(0).DisplayColumns("No")
dc.Visible = True
dc.Width = 20
'非連結列を固定&ロック
dc.Frozen = True
dc.Locked = True
Dim d = c1TrueDBGrid1.Splits(0).DisplayColumns
d.RemoveAt(d.IndexOf(dc))
d.Insert(0, dc)
AddHandler c1TrueDBGrid1.UnboundColumnFetch, AddressOf C1TrueDBGrid1_UnboundColumnFetch
End Sub
' 非連結列に行番号を表示
Private Sub C1TrueDBGrid1_UnboundColumnFetch(sender As Object, e As UnboundColumnFetchEventArgs)
If e.Column.Caption = "No" Then
e.Value = Convert.ToString(e.Row + 1)
End If
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
// データの設定
// ...
// 非連結列を追加
var c = new C1DataColumn();
c.Caption = "No";
c1TrueDBGrid1.Columns.Add(c);
var dc = this.c1TrueDBGrid1.Splits[0].DisplayColumns["No"];
dc.Visible = true;
dc.Width = 20;
//非連結列を固定&ロック
dc.Frozen = true;
dc.Locked = true;
var d = c1TrueDBGrid1.Splits[0].DisplayColumns;
d.RemoveAt(d.IndexOf(dc));
d.Insert(0, dc);
c1TrueDBGrid1.UnboundColumnFetch += C1TrueDBGrid1_UnboundColumnFetch;
}
// 非連結列に行番号を表示
private void C1TrueDBGrid1_UnboundColumnFetch(object sender, UnboundColumnFetchEventArgs e)
{
if (e.Column.Caption == "No")
e.Value = Convert.ToString(e.Row + 1);
}
{
// データの設定
// ...
// 非連結列を追加
var c = new C1DataColumn();
c.Caption = "No";
c1TrueDBGrid1.Columns.Add(c);
var dc = this.c1TrueDBGrid1.Splits[0].DisplayColumns["No"];
dc.Visible = true;
dc.Width = 20;
//非連結列を固定&ロック
dc.Frozen = true;
dc.Locked = true;
var d = c1TrueDBGrid1.Splits[0].DisplayColumns;
d.RemoveAt(d.IndexOf(dc));
d.Insert(0, dc);
c1TrueDBGrid1.UnboundColumnFetch += C1TrueDBGrid1_UnboundColumnFetch;
}
// 非連結列に行番号を表示
private void C1TrueDBGrid1_UnboundColumnFetch(object sender, UnboundColumnFetchEventArgs e)
{
if (e.Column.Caption == "No")
e.Value = Convert.ToString(e.Row + 1);
}
関連情報
旧文書番号
82209