windowsforms-9683-controls-and-libraries-rich-text-editor-examples-ui-customization-how-to-customize-the-hyperlink-form.md
This example demonstrates how to replace the standard Hyperlink dialog with a custom form using the RichEditControl.HyperlinkFormShowing event.
private void richEditControl1_HyperlinkFormShowing(object sender,HyperlinkFormShowingEventArgs e)
{
using (MyHyperlinkForm form = new MyHyperlinkForm(e.ControllerParameters))
{
e.DialogResult = form.ShowDialog();
e.Handled = true;
}
}
Private Sub richEditControl1_HyperlinkFormShowing(ByVal sender As Object, ByVal e As HyperlinkFormShowingEventArgs)
Using form As New MyHyperlinkForm(e.ControllerParameters)
e.DialogResult = form.ShowDialog()
e.Handled = True
End Using
End Sub
using System;
using DevExpress.XtraRichEdit.Forms;
namespace CustomDialogs {
class MyHyperlinkForm : HyperlinkForm {
public MyHyperlinkForm(HyperlinkFormControllerParameters controllerParameters)
: base(controllerParameters)
{
btnEditAddress.EditValueChanged += new EventHandler(btnEditAddress_EditValueChanged);
btnEditAddress.LostFocus += new EventHandler(btnEditAddress_LostFocus);
}
void btnEditAddress_LostFocus(object sender, EventArgs e) {
this.btnEditAddress.Text = Controller.NavigateUri;
}
void btnEditAddress_EditValueChanged(object sender, EventArgs e) {
Controller.NavigateUri = ValidateUrl(btnEditAddress.Text);
this.btnOk.Enabled = true;
}
private string ValidateUrl(string p) {
string s = p.Replace("devexpres.com", "devexpress.com");
return s;
}
}
}
Imports Microsoft.VisualBasic
Imports System
Imports DevExpress.XtraRichEdit.Forms
Namespace CustomDialogs
Friend Class MyHyperlinkForm
Inherits HyperlinkForm
Public Sub New(ByVal controllerParameters As HyperlinkFormControllerParameters)
MyBase.New(controllerParameters)
AddHandler btnEditAddress.EditValueChanged, AddressOf btnEditAddress_EditValueChanged
AddHandler btnEditAddress.LostFocus, AddressOf btnEditAddress_LostFocus
End Sub
Private Sub btnEditAddress_LostFocus(ByVal sender As Object, ByVal e As EventArgs)
Me.btnEditAddress.Text = Controller.NavigateUri
End Sub
Private Sub btnEditAddress_EditValueChanged(ByVal sender As Object, ByVal e As EventArgs)
Controller.NavigateUri = ValidateUrl(btnEditAddress.Text)
Me.btnOk.Enabled = Not String.IsNullOrEmpty(Me.btnEditAddress.Text)
End Sub
Private Function ValidateUrl(ByVal p As String) As String
Dim s As String = p.Replace("devexpres.com", "devexpress.com")
Return s
End Function
End Class
End Namespace