List View -> nur 1 Spalte editierbar



  • Hi, ich habe ein List-View Control mit 2 Spalten erstellt, kann wunderbar Elemente einfügen und so, ich will auch Elemente editieren können, allerdings nur die in der 2. (also der rechten) Spalte. Wie stell ich das an?
    Momentan kann ich nur das Element in der 1. (linken) spalte editieren auch wenn ich das Control ohne LVS_EX_FULLROWSELECT erstelle!

    Ich erstelle das Control mit den 2 Spalten momentan so:

    list = CreateWindowEx(	WS_EX_STATICEDGE, WC_LISTVIEW,
    							"",
    							WS_CHILD | WS_VISIBLE | LVS_EDITLABELS | LVS_SINGLESEL  | LVS_REPORT | LVS_NOSORTHEADER,
    							5, 5,
    							285, 343,
    							wnd,
    							(HMENU)EN_LIST,
    							hInstance,
    							NULL);
    
    ListView_SetExtendedListViewStyle(list, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
    
    	lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
    	lvc.fmt = LVCFMT_LEFT;
    	lvc.cx = 135;
    	lvc.pszText = "Flag";  
    	lvc.iSubItem = 0;
    	ListView_InsertColumn(list, 0, &lvc);
    
    	lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
    	lvc.fmt = LVCFMT_LEFT;
    	lvc.cx = 200;
    	lvc.pszText = "Wert";  
    	lvc.iSubItem = 0;
    	ListView_InsertColumn(list, 0, &lvc);
    


  • Standardmässig kannst Du lediglich die erste Spalte editieren. Du kannst aber die Spalten vertauscht darstellen. Ungetestet:

    int nOrderArray[] = { 1, 0 };
    ListView_SetColumnOrderArray(list, (sizeof(nOrderArray) / sizeof(nOrderArray[0])), nOrderArray);
    


  • Danke, das funkt und is ausreichend! 😋



  • 😮 Gibt es keine Möglichkeiten mehrere Spalten zu editieren ? 😕



  • Mit dem Standard-ListView geht das nicht, nein. Das mußt Du selbst implementieren (ListView subclassen, bei Bedarf selbst ein EditCtrl erzeugen und an die entsprechende Stelle bewegen). Dazu gibt es unzählige Beiträge bei codeproject/ codeguru, da wirst Du sicher fündig.



  • 🙂 Gracias, Grazie, bedankt, thank you, tank u well, danke, gratiam ago 🙂



  • so und jetzt wieder zurück in den kindergarten ➡ 😋


Anmelden zum Antworten