送信したメールにlistboxの項目を添付、textboxからlistboxに

タグの編集
投稿者 りらっくま  (高校生) 投稿日時 2013/4/5 04:13:24
いきなりすみません。2回目の質問なんですが、
メールの本文にlistboxの項目を添付したいんですが
どしたらいいかわかりません。
後、textboxに書いた文字と数字をlistboxに
表示したいのですがどうしたらいいでしょう。
図々しく2つも質問さしてもらいましたけど
どなたかご教授お願いします。
一応今書いているコードがこれです。

Public Class Form1

    Private Class Price
        Public Property 品物 As String
        Public Property 単価 As Integer

        Public Function Copy() As Price
            Return New Price With {.品物 = Me.品物, .単価 = Me.単価}
        End Function
        Public Overrides Function ToString() As String
            Return String.Format("{0}{1:0}円", 品物, 単価)
        End Function
    End Class

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ListBox1.Items.Add(New Price() With {.品物 = "パ ン", .単価 = 100})
        ListBox1.Items.Add(New Price() With {.品物 = "コーヒー", .単価 = 200})
        ListBox1.Items.Add(New Price() With {.品物 = "ジュース", .単価 = 300})


    End Sub

    

    Private Sub ListBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.Click
        If ListBox1.SelectedItem IsNot Nothing Then
            ListBox2.Items.Add(DirectCast(ListBox1.SelectedItem, Price).Copy)
        End If

    End Sub


    Private Sub Label2_Layout(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Label2.Text = ("リストから項目をクリックしてください")
    End Sub

    Private Sub Label1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Label1.Text = ("リストから選択された項目")
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim 合計 As Integer = 0
        For Each itm As Price In ListBox2.Items
            合計 += itm.単価
        Next
        TextBox1.Text = "合計" & 合計.ToString & "円"
    End Sub
    Private Declare Function SendMail Lib "bsmtp" _
  (ByVal szServer As String, ByVal szTo As String, ByVal szFrom As String, _
  ByVal szSubject As String, ByVal szBody As String, ByVal szFile As String) As String

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim msg As New System.Net.Mail.MailMessage()
        Dim senderMail As String = "@yahoo.co.jp"
        Dim recipientMail As String = "@softbank.ne.jp"
        Dim subject As String = ListBox2.Text
        Dim body As String = ListBox2.Text + vbCrLf + vbCrLf + TextBox1.Text
        Dim sc As New System.Net.Mail.SmtpClient()
        sc.Host = " "
        sc.Port = 
        sc.EnableSsl = False
        sc.UseDefaultCredentials = False
        sc.Timeout = 100000
        sc.Credentials = New System.Net.NetworkCredential("****", "****")
        sc.Send(senderMail, recipientMail, subject, body)

        MessageBox.Show("送信しました")



    End Sub



    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        With ListBox2
            Do While .SelectedIndex > -1
                .Items.RemoveAt(.SelectedIndex)
            Loop
        End With
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim x As String
        Dim a As Integer = 0

        If TextBox3.Text = a Then
            If TextBox2.Text = x Then
                ListBox1.Items.Add(New Price() With {.品物 = x, .単価 = a})

            End If
        End If
    End Sub

End Class
投稿者 YuO  (社会人) 投稿日時 2013/4/5 23:11:14
わからないのは何でしょうか。

> メールの本文にlistboxの項目を添付したいんですが
> どしたらいいかわかりません。
ListBox1のItemsからPriceを取得する方法はご自身でButton1_Clickに書いていますよね。
あとは,文字列を作り出して,bodyに追加するなりすればよいです。

> 後、textboxに書いた文字と数字をlistboxに
> 表示したいのですがどうしたらいいでしょう。
これは,TextBoxの内容をListBoxに追加したい,ということでしょうか。
それであれば,Form1_Loadでやっているような方法で追加できます。
# Addの戻り値をSelectedIndexに指定することで,選択状態にできます。
投稿者 りらっくま  (高校生) 投稿日時 2013/4/6 02:03:08
回答ありがとうございました。
vb初心者なので
がんばって調べながら完成させたいです。