0

MySQL を介して入力されている datagridview があります。1 つの列には電子メールが含まれ、行にはその特定の電子メール アドレスに関連付けられたデータが含まれます。フォームに次のコードを入力したので、ユーザーがメール アドレスのセルをクリックすると、新しいメッセージ ウィンドウが開き、メール アドレスが mailto セクションに表示されます。

 Private Sub MyDataGridView_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
    If DataGridView1.Columns(e.ColumnIndex).HeaderText = "Mech Email" Then
        Dim selectedEMailCell As DataGridViewCell = DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex)
        If selectedEMailCell.Value IsNot Nothing Then
            System.Diagnostics.Process.Start("mailto:" & selectedEMailCell.Value.ToString & "")
        End If
    End If
End Sub

表示される新しいメール ウィンドウの件名と本文に、同じ行の他のセルからの情報を含める機能を追加したいと考えています。私が扱っている列は次のとおりです。

Mech EmailSite No (件名)、Findings (本文、他のコメントも追加したい)、Days Old (本文)

4

1 に答える 1

1

ここにあなたが必要とするものの簡単な概要があります。私はそれをエディターに投げ込む機会がなかったので、いくつかのタイプミスがあるかもしれません。また、他のセルが空であるかどうかを確認するためのチェックは行いませんでした。基本的なmailto:構文はmailto:name@mail.com?subject=Hello&?body=Main messageです。もう1つ、件名または本文に「&」または「?」が含まれている場合は、それらを除外する必要があります。

        Dim selectedEMailCell As DataGridViewCell = DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex)
        Dim selectedEMailRow As DataGridViewRow = DirectCast(DataGridView1.Rows(e.RowIndex)
        With selectedEMailRow
          If selectedEMailCell.Value IsNot Nothing Then
            Dim mailToString As New Stringbuilder
            mailToString.Append("mailto:" & .selectedEMailCell.Value.ToString)
            mailToString.Append("?subject=" & .Cells("Mech Email").value)
            mailToString.Append(.Cells("Site No").value) 
            mailToString.Append("&body=" & .Cells("Findings").value) 
            mailToString.Append(.Cells("Days Old").value) 
            System.Diagnostics.Process.Start(mailToString.ToString & "")
          End If
        End With
于 2012-07-31T19:42:47.833 に答える