ツリーノード (長い名前) を編集すると、背景色が変わります:
背景を削除するにはどうすればよいですか? 背景色を変更するにはどうすればよいですか?
OnDrawNode で削除しようとしましたが、それは不可能です。次に、TVM_GETEDITCONTROL メッセージを使用して WM_CTLCOLOREDIT を送信しようとしましたが、これも機能しません。
[DllImport("user32.dll")]
internal static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
internal const int WM_CTLCOLOREDIT = 0x0133;
internal const int TVM_GETEDITCONTROL = 0x110F;
private void NodeTree_BeforeLabelEdit(object sender, NodeLabelEditEventArgs e)
{
TreeNode nodeEditing = e.Node;
IntPtr editControlHandle = SendMessage(NodeTree.Handle, (uint)TVM_GETEDITCONTROL, IntPtr.Zero, IntPtr.Zero);
if (editControlHandle != IntPtr.Zero)
{
SendMessage(editControlHandle, (uint)WM_CTLCOLOREDIT, ColorTranslator.ToWin32(Color.Red), new IntPtr(1));
}
}