|
分類:[VB.NET/VB2005 以降]
Win8.1+VB2010+.NET Framework4.0を使用しています。
フォームにボタン1つとリストビュー1つを貼り付け、リストビューに列を1つ追加しました。
プロパティ画面上ではデフォルトでColumnHeader1と名前が付いています。
ところが、メッセージボックスで列ヘッダーの名前を見ても何も表示されません。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show(ListView1.Columns(0).Name)
End Sub
End Class
そこでForm1.Designer.vbを確認したところ、Me.ColumnHeader1.Nameが設定されていませんでした。
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
Inherits System.Windows.Forms.Form
'フォームがコンポーネントの一覧をクリーンアップするために dispose をオーバーライドします。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows フォーム デザイナーで必要です。
Private components As System.ComponentModel.IContainer
'メモ: 以下のプロシージャは Windows フォーム デザイナーで必要です。
'Windows フォーム デザイナーを使用して変更できます。
'コード エディターを使って変更しないでください。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.ListView1 = New System.Windows.Forms.ListView()
Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.Button1 = New System.Windows.Forms.Button()
Me.SuspendLayout()
'
'ListView1
'
Me.ListView1.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1})
Me.ListView1.Location = New System.Drawing.Point(12, 12)
Me.ListView1.Name = "ListView1"
Me.ListView1.Size = New System.Drawing.Size(260, 159)
Me.ListView1.TabIndex = 0
Me.ListView1.UseCompatibleStateImageBehavior = False
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(12, 193)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(267, 48)
Me.Button1.TabIndex = 1
Me.Button1.Text = "Button1"
Me.Button1.UseVisualStyleBackColor = True
'
'Form1
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(284, 261)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.ListView1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
Friend WithEvents ListView1 As System.Windows.Forms.ListView
Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader
Friend WithEvents Button1 As System.Windows.Forms.Button
End Class
そこで質問なのですが、Me.ColumnHeader1.Nameが設定されないのはVB2010の問題なのでしょうか。
また、自分でソースにMe.ColumnHeader1.Name = "ColumnHeader1"と書き加える他ないのでしょうか。
これではフォームデザイナで列ヘッダー名を変更するたびにコードエディタでも編集しなければなりません。
(項目名なんて頻繁に変えるものでもありませんが…)
|