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
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...