2016-11-18 7 views
1

Я попытался, используя следующий код для установки метки баннера для kryptontextboxне может установить cuebanner для kryptontextbox

Imports System.Runtime.InteropServices 

Public Class Form1 

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
     SetCueText(KryptonTextBox1.Handle, "Enter Name here") 
    End Sub 
End Class 

Public Module CueBannerText 
    <DllImport("user32.dll", CharSet:=CharSet.Auto)> _ 
    Private Function SendMessage(ByVal hWnd As IntPtr, ByVal msg As Integer, ByVal wParam As Integer, <MarshalAs(UnmanagedType.LPWStr)> ByVal lParam As String) As Int32 
    End Function 
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As IntPtr, ByVal hWnd2 As IntPtr, ByVal lpsz1 As String, ByVal lpsz2 As String) As IntPtr 
    Private Const EM_SETCUEBANNER As Integer = &H1501 

    Public Sub SetCueText(hWnd As IntPtr, text As String) 
     if Not hWnd = IntPtr.Zero Then 
     SendMessage(hWnd, EM_SETCUEBANNER, 0, text) 
     End If 
    End Sub 
End Module 

однако, текст не получает набор. как я исправить это

+0

Его 'MultiLine' должен иметь значение' false'. А также он должен быть получен из «TextBox». В качестве альтернативного решения вы можете нарисовать водяной знак, используя «NativeWindow», обработав сообщение «WM_PAINT». –

ответ

2

EM_SETCUEBANNER применимо к управлению TextBox. KryptonTextBox фактически является составным Control, который содержит TextBox.

TextBox выставлен на продажу TextBox. Вы можете использовать KryptonTextBox1.TextBox.Handle, чтобы отправить сообщение EM_SETCUEBANNER.

Чтобы увидеть исходный код компонентов, посмотрите на это GitHub repository. Вот связанная часть кода:

public class KryptonTextBox : VisualControlBase, IContainedInputControl 
{ 
    //... 
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
    [EditorBrowsable(EditorBrowsableState.Always)] 
    [Browsable(false)] 
    public TextBox TextBox 
    { 
     get { return _textBox; } 
    } 
    //... 
} 
+0

спасибо vert много !! Можете ли вы быть моим наставником? – Smith

+0

Добро пожаловать :) –

+0

Благодарим за комплименты :) Не стесняйтесь сообщать мне, когда вам нужно больше внимания на вопрос. Если у меня есть что поделиться, я поделюсь. Выгода от всего сообщества лучше, чем просто одна :) –