C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ListViewにおいて列ヘッダーの名前が設定されない


(過去ログ 123 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■73280 / inTopicNo.1)  ListViewにおいて列ヘッダーの名前が設定されない
  
□投稿者/ 赤坂太郎 (3回)-(2014/09/06(Sat) 17:39:17)

分類:[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"と書き加える他ないのでしょうか。
これではフォームデザイナで列ヘッダー名を変更するたびにコードエディタでも編集しなければなりません。
(項目名なんて頻繁に変えるものでもありませんが…)

引用返信 編集キー/
■73281 / inTopicNo.2)  Re[1]: ListViewにおいて列ヘッダーの名前が設定されない
□投稿者/ Hongliang (228回)-(2014/09/06(Sat) 18:14:06)
まあ仕様なんでしょうね。C#でもNameは設定されていませんでした。
// System.ComponentModel.ComponentにNameプロパティって存在しないのね。

> また、自分でソースにMe.ColumnHeader1.Name = "ColumnHeader1"と書き加える他ないのでしょうか。
Nameプロパティを使いたいならそうなのでしょうね。
でもNameプロパティの使いどころなんてそんなにありますかね?

> これではフォームデザイナで列ヘッダー名を変更するたびにコードエディタでも編集しなければなりません。
> (項目名なんて頻繁に変えるものでもありませんが…)
ヘッダ名と同じで良いならMe.ColumnHeader1.Name = Me.ColumnHeader1.Textでも良いと思いますけど。
引用返信 編集キー/
■73308 / inTopicNo.3)  Re[2]: ListViewにおいて列ヘッダーの名前が設定されない
□投稿者/ 赤坂太郎 (4回)-(2014/09/09(Tue) 23:42:12)
お返事ありがとうございます。
ちょっと不思議だったのでお訊ねしたのですが、仕様ということで納得することにします。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -