Laden...

EditLabel in ListView mit mehr wie 260 Zeichen?

Erstellt von CaptainIglo vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.093 Views
C
CaptainIglo Themenstarter:in
366 Beiträge seit 2005
vor 13 Jahren
EditLabel in ListView mit mehr wie 260 Zeichen?

Hallo,

ich habe hier eine ListView, in welcher ich LabelEdit auf true habe. Wenn ich jetzt aber einen sehr langen Text (>260 Zeichen) editiere, wird er bei 260 Zeichen abgeschnitten und ich kann nicht mehr tippen.

Ich habe folgendes versucht, welches mich zwar mehr Zeichen tippen lies, aber geladen/gespeichert wurden wieder nur 260 Zeichen:

[DllImport("user32.dll", CharSet = CharSet.Ansi)]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, int len, IntPtr order);

private const int EM_LIMITTEXT = 0xC5;
private const int LVM_FIRST = 0x1000;
private const int LVM_GETEDITCONTROL = (LVM_FIRST + 24);

private void listViewAnswer_BeforeLabelEdit(object sender, LabelEditEventArgs e)
{
    IntPtr editWnd = IntPtr.Zero;
    editWnd = SendMessage(listViewAnswer.Handle, LVM_GETEDITCONTROL, 0, IntPtr.Zero);
    SendMessage(editWnd, EM_LIMITTEXT, 2048, IntPtr.Zero);
}

Kann mir jemand sagen, wie ich mehr wie 260 darstellen und editieren kann?

lg
Capt.Iglo

4.942 Beiträge seit 2008
vor 13 Jahren

Anscheinend werden nicht mehr als 260 Zeichen von der ListView dargestellt (s.a. http://msdn.microsoft.com/en-us/library/bb774760(VS.85).aspx), jedoch kann man intern mehr als 260 Zeichen speichern (hier ein Ansatz mit C++: http://www.codeproject.com/Messages/436202/Re-How-to-break-the-260-bytes-limitations.aspx). Beachte aber auch die weiteren Beiträge dort bzgl. Owner-Drawing.

Edit: yeah, die 1000 sind voll...