DOBON.NET DOBON.NETプログラミング掲示板過去ログ

構造体の使い方

環境/言語:[VB2008 win7 ]
分類:[.NET]

こんにちは。
初歩的な質問ですみません。やりたいことは構造体に変数を設定して、そこに対して文字列を設定したり、取得したりしたいです。
テスト用に以下のようなコードを書いたのですが、どうもうまくいきません。
単にグローバル変数だと大丈夫なんですが、構造体にするとうまくいきません。


Public Class Form1
Dim DFD As New AAA
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Form2.ShowDialog()
TextBox1.Text = DFD.DDD
End Sub
End Class



Module Module1
Public Structure AAA
Public DDD As String
End Structure
End Module



Public Class Form2
Dim aac As New AAA
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
aac.DDD = "676777"
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
End Class
  • 題名: Re[1]: 構造体の使い方
  • 著者: Azulean
  • 日時: 2013/02/01 0:51:56
  • ID: 31300
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
2013/02/01(Fri) 00:53:00 編集(投稿者)

■No31299に返信(よーこさんの記事)
> Dim DFD As New AAA
> Dim aac As New AAA

上記の 2 つはそれぞれ別の変数ですので、aac.DDD に入れたものは DFD.DDD に影響しません。
構造体を作ったからと言ってグローバル変数をなくすことにはなりませんし、同じ場所(=箱、メモリとも表現できる)を提供するわけではありません。
構造体(やクラス)について再度調べてみてください。


どういったことをしたかったのか次第ですが、Form2 にプロパティを作るとか考えた方がいいかもしれません。
■No31299に返信(よーこさんの記事)

構造体をどう使いたいのかが見えませんが
提示コードから想像できるやりたいことを実現するには以下のコードでどうでしょう?

Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Form2.ShowDialog()
        TextBox1.Text = Form2.DDD
    End Sub
End Class


Public Class Form2

    Private _DDD As String
    Public Property DDD As String
        Get
            Return _DDD
        End Get
        Set(value As String)
            _DDD = value
        End Set
    End Property

    Private Sub Form2_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        _DDD = "676777"
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Me.Close()
    End Sub
End Class
  • 題名: Re[2]: 構造体の使い方
  • 著者: よーこ
  • 日時: 2013/02/02 22:44:02
  • ID: 31302
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
お二人回答ありがとうございました。

いろいろアドバイスを参考に調べてみました。

なんとか希望通りの動作にたどり着きました。ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板