我有一个通过MySQL填充的datagridview。一列包含电子邮件,行将包含与该特定电子邮件地址关联的数据。我在表单中输入了以下代码,因此当用户单击带有电子邮件地址的单元格时,将打开一个新的消息窗口,并且电子邮件地址将位于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
我希望能够添加来自同一行中其他单元格的信息,以包含在显示的新电子邮件窗口的主题行和正文中。以下是我正在使用的专栏:
机上电子邮件,网站否(主题行),调查结果(正文,但我想添加其他评论),< strong> Days Old (身体)
答案 0 :(得分:1)
以下是您需要的快速概述。我没有机会把它扔进编辑器,所以可能会有一些错别字。此外,我没有进行任何检查以查看其他单元格是否为空。基本mailto:
语法为mailto:name@mail.com?subject=Hello&?body=Main message
。还有一件事,如果您的主题或正文包含“&amp;”或者“?”,你可能需要过滤掉它们。
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