あなたが言ったように、TreeNode ソースを調べると、ノードが編集モードになったときに (.NET フォームではなく Windows UI コントロールから) 編集コントロールを使用していることがわかります。編集モードでフォントを設定するクラスには何も表示されないため、編集コントロールに直接メッセージを投稿する必要があると思います。TVM_GETEDITCONTROLを使用してハンドルを取得し、WM_SETFONTを使用してフォントを設定します。おそらくFont.ToHfont()も必要になるでしょう。
編集: SendMessage を呼び出してフォントの変更を行う方法の例を次に示します。
[DllImport("user32.dll")]
internal static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
internal const int WM_SETFONT = 0x0030;
internal const int TVM_GETEDITCONTROL = 0x110F;
private void treeView1_BeforeLabelEdit(object sender, NodeLabelEditEventArgs e)
{
TreeNode nodeEditing = e.Node;
IntPtr editControlHandle = SendMessage(treeView1.Handle, (uint)TVM_GETEDITCONTROL, IntPtr.Zero, IntPtr.Zero);
if (editControlHandle != IntPtr.Zero)
{
SendMessage(editControlHandle, (uint)WM_SETFONT, nodeEditing.NodeFont.ToHfont(), New IntPtr(1));
}
}