Come utilizzare la Rich TextBox di SharePoint all'interno di una Web Part

Oggi mi sono trovato davanti alla necessità di utilizzare le funzionalità avanzate di formattazione del testo offerte da SharePoint all'interno di una mia web part custom.
Come per i campi di tipo Multiline, è possibile utilizzare un controllo specifico per rendere possibile la formattazione del testo tramite un'interfaccia simile alla barra degli strumenti di Word, o comunque, come un qualsiasi editor WYSIWYG.
Il controllo da utilizzare per ottenere questo risultato è presente all'interno del namespace Microsoft.SharePoint.WebControls ed è stato chiamato InputFormTextBox.
Vediamo un esempio d'utilizzo, all'interno di una web part custom:

namespace RichTextBoxWebPart

{
[Guid("7bf84d97-998b-4dba-9b94-7fcab9402e7a")]
public class RichTextBoxWebPart : System.Web.UI.WebControls.WebParts.WebPart
{
private InputFormTextBox txt = null;
private Button btn = null;
private Label lbl = null;

public RichTextBoxWebPart() { }

protected override void CreateChildControls()
{
base.CreateChildControls();

txt = new InputFormTextBox();
txt.ID = "txt";
txt.TextMode = TextBoxMode.MultiLine;
txt.Rows = 6;
txt.RichText = true;
txt.RichTextMode = SPRichTextMode.FullHtml;
this.Controls.Add(txt);

btn = new Button();
btn.ID = "btn";
btn.Text = "Click";
btn.Click += new EventHandler(btn_Click);
this.Controls.Add(btn);

lbl = new Label();
lbl.ID = "lbl";
this.Controls.Add(lbl);
}

protected override void Render(HtmlTextWriter writer)
{
txt.RenderControl(writer);
writer.Write("<br />");
btn.RenderControl(writer);
writer.Write("<hr />");
lbl.RenderControl(writer);
}

void btn_Click(object sender, EventArgs e)
{
lbl.Text = txt.Text;
}
}
}

Il risultato lo potete vedere in figura.


Ho preparato anche una soluzione scaricabile ed utilizzabile della web part d'esempio.
Buon download !