2009年10月29日


VB.net : LboxGrid : 列にボタンを実装する

Lboxgrid_den_btn
ボタン用のイベントは内部で定義しているユーザイベントです
' ************************************************
' カラム追加
' ************************************************
Me.LboxGrid1.AddColumn("COL_1", "コード")
Me.LboxGrid1.SetColumnWidth("COL_1", 40)

Me.LboxGrid1.AddColumn("COL_REF", "", lightbox.LboxColumnType.LboxColumnType_Button)
Me.LboxGrid1.Columns(1).DefaultCellStyle.BackColor = Color.Silver

Me.LboxGrid1.AddColumn("COL_2", "商品名")
Me.LboxGrid1.SetColumnWidth("COL_2", 150)
Me.LboxGrid1.Columns("COL_2").ReadOnly = True   ' この列は入力不可

Me.LboxGrid1.AddColumn("COL_3", "数量")
Me.LboxGrid1.SetColumnWidth("COL_3", 50)

' 右寄せにする為、ヘッダとカラム用のスタイルを作成する
Dim MiddleRight As DataGridViewCellStyle = New DataGridViewCellStyle
MiddleRight.Alignment = DataGridViewContentAlignment.MiddleRight
Me.LboxGrid1.Columns("COL_3").HeaderCell.Style = MiddleRight
Me.LboxGrid1.Columns("COL_3").DefaultCellStyle = MiddleRight

Me.LboxGrid1.AddColumn("COL_4", "単価")
Me.LboxGrid1.SetColumnWidth("COL_4", 50)
Me.LboxGrid1.Columns("COL_4").ReadOnly = True   ' この列は入力不可
Me.LboxGrid1.Columns("COL_4").HeaderCell.Style = MiddleRight
Me.LboxGrid1.Columns("COL_4").DefaultCellStyle = MiddleRight

Me.LboxGrid1.AddColumn("COL_5", "金額")
Me.LboxGrid1.SetColumnWidth("COL_5", 50)
Me.LboxGrid1.Columns("COL_5").HeaderCell.Style = MiddleRight
Me.LboxGrid1.Columns("COL_5").DefaultCellStyle = MiddleRight

' 行を作成
Dim I As Integer
For I = 1 To 6
	Me.LboxGrid1.AddRow()
	Me.LboxGrid1.SetColumnText("COL_1", "")
	Me.LboxGrid1.SetColumnText("COL_2", "")
	Me.LboxGrid1.SetColumnText("COL_3", "")
	Me.LboxGrid1.SetColumnText("COL_4", "")
	Me.LboxGrid1.SetColumnText("COL_5", "")
	Me.LboxGrid1.SetColumnText("COL_REF", "参照")
Next

' 編集対象フォーカスの設定
Me.LboxGrid1.SetFocusCell(0, 0)
' 初期の編集可能なセルフォーカスの設定
Me.LboxGrid1.EditingControl.Select()
Private Sub LboxGrid1_CellClickButton(ByVal sender As System.Windows.Forms.DataGridViewCell, _
ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles LboxGrid1.CellClickButton

	Dim nCol As Integer = e.ColumnIndex
	Dim nRow As Integer = e.RowIndex

	If Me.LboxGrid1.GetColumnName(nCol) = "COL_REF" Then
		MessageBox.Show(nRow & "行目のボタン")
	End If

End Sub
関連する記事
伝票入力に最適化した DataGridView


posted by at 2009-10-29 14:29 | VB.NET LboxGrid | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します