Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中使用LinkLabel超链接电子邮件地址#_C#_Email_Hyperlink_Outlook_Linklabel - Fatal编程技术网

C# 在C中使用LinkLabel超链接电子邮件地址#

C# 在C中使用LinkLabel超链接电子邮件地址#,c#,email,hyperlink,outlook,linklabel,C#,Email,Hyperlink,Outlook,Linklabel,我制作了一个“关于”框,允许用户单击超链接电子邮件地址,这会将他们带到Microsoft Outlook,以便能够向电子邮件地址发送电子邮件,但我不知道如何将其链接到Outlook并允许用户单击链接来执行此操作 如果用户的计算机上安装了outlook,它将使用它 编辑:oops刚刚注意到您想要的是Winforms而不是web 对于winforms,请使用系统.diagnostics.Process.Start(outlook.exe/c ipm.note/mbob@someadress.com)

我制作了一个“关于”框,允许用户单击超链接电子邮件地址,这会将他们带到Microsoft Outlook,以便能够向电子邮件地址发送电子邮件,但我不知道如何将其链接到Outlook并允许用户单击链接来执行此操作

如果用户的计算机上安装了outlook,它将使用它

编辑:oops刚刚注意到您想要的是Winforms而不是web


对于winforms,请使用系统.diagnostics.Process.Start(outlook.exe/c ipm.note/mbob@someadress.com)在单击事件处理程序中。

在窗体的构造函数中添加一个
链接标签

linkLabel1.Links.Add(新的LinkLabel.Link(0,linkLabel1.Text.Length),mailto:bob@someaddress.com"));
然后,在
LinkLabel
的单击处理程序中:

linkLabel1.Links[linkLabel1.Links.IndexOf(e.Link)].visted=true;
字符串目标=e.Link.LinkData作为字符串;
系统。诊断。过程。启动(目标);

您并不是说您是在使用Win-Forms还是WebForms…在WinForms中,我认为您需要为click事件创建一个事件处理程序。您可以通过键入以下内容启动默认邮件应用程序:

System.Diagnostics.Process.Start("mailto:youremail@xx.com");
检查此SO线程:

基本上,点击事件是这样的:

private void linkLabel1_LinkClicked(object sender,System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
 System.Diagnostics.Process proc = new System.Diagnostics.Process();
    proc.StartInfo.FileName = "mailto:someone@somewhere.com?subject=hello&body=love my body";
    proc.Start();
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    linkLabel1.LinkVisited = true;
    System.Diagnostics.Process.Start("mailto:info@cybersprocket.com");
}

在表单上添加链接标签

双击链接标签以创建点击处理程序,然后将系统进程调用放入其中,如下所示:

private void linkLabel1_LinkClicked(object sender,System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
 System.Diagnostics.Process proc = new System.Diagnostics.Process();
    proc.StartInfo.FileName = "mailto:someone@somewhere.com?subject=hello&body=love my body";
    proc.Start();
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    linkLabel1.LinkVisited = true;
    System.Diagnostics.Process.Start("mailto:info@cybersprocket.com");
}
这将触发用户在其windows设备上配置的默认电子邮件应用程序

将mailto:替换为HTTP引用以在其默认浏览器中打开网页:

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    linkLabel1.LinkVisited = true;
    System.Diagnostics.Process.Start("http://www.cybersprocket.com");
}

这里值得注意的是,如果用户没有在Win XP/7中设置默认邮件客户端,则此调用将引发异常
System.ComponentModel.Win32Exception(0x80004005):没有应用程序与此操作的指定文件关联
。Win 8至少会询问他们希望启动“mailto”处理程序的应用程序with@Xerxes,我们如何避免此错误,或者我们可以捕获它并询问要启动的应用程序?