vb.net - sobre - ¿URL que se puede hacer clic en un cuadro de mensaje de Winform?
texto emergente al pasar el mouse (5)
MessageBox no hará eso. Necesitarás usar el TaskDialog (presentado en Vista) o crear tu propio diálogo.
--Editar--
Hay formas de simular el diálogo de tareas en XP. Hay algunos artículos en CodeProject.com que he usado en el pasado.
Quiero mostrar un enlace para ayudar en un cuadro de mensaje. Por defecto, el texto se muestra como una cadena no seleccionable.
Podría usar algún código personalizado con LinkLabel
así:
if (hyperLinks != null)
{
foreach (var link in hyperLinks)
{
var linkLabel = new LinkLabel();
linkLabel.Text = link;
linkLabel.Width = WhateverParentPanelYouHave.Width;
linkLabel.Click += LabelClicked;
WhateverParentPanelYouHave.Controls.Add(linkLabel);
}
}
Donde hyperLinks
es una lista de cadenas para sus enlaces.
Luego, para su controlador LabelClicked
:
private async void LabelClicked(object sender, EventArgs e)
{
var linkLabel = (LinkLabel) sender;
var path = linkLabel.Text;
try
{
await Task.Run(() => Process.Start($@"{path}"));
}
catch (Exception ex)
{
MessageBox.ShowMessage(ex.Message, @"An Error Has Occurred");
}
}
Tenga en cuenta que este es su propio formulario con el control LinkLabel
agregado. Tendrás que heredar de Form
y usar el método ShowDialog()
para mostrar tu formulario con todos tus controles agregados.
Puede usar el control LinkLabel
en su propio Form
para esto. Desafortunadamente, el formulario MessageBox
no se puede personalizar de esta manera, por lo que necesitaría crear su propio Form
para imitar el MessageBox
para sus propósitos.
Una opción es mostrar la URL en el cuadro de mensaje, junto con un mensaje y proporcionar el botón de ayuda que lo lleva a esa url:
MessageBox.Show(
"test message",
"caption",
MessageBoxButtons.YesNo,
MessageBoxIcon.Information,
MessageBoxDefaultButton.Button1,
0, ''0 is default otherwise use MessageBoxOptions Enum
"http://google.com",
"keyword")
Importante tener en cuenta que este código no puede estar en el evento de carga del formulario, el botón Ayuda no abrirá el enlace.
LinkLabel
crear su propio formulario, en lugar del MessageBox incorporado, y puede usar un LinkLabel
en él.
Sin embargo, en el MessageBox incorporado, se puede mostrar un botón de Ayuda entre los botones.