Thanks for raising this. I’ve logged a feature request for built-in ListBox copying.
The proposed behaviour is to copy the normal stored cell text automatically, with no event handler required.
For custom-drawn cells, there would be an optional CellCopying event. This would receive the row, column and a data object containing the text to copy. The handler could replace that text (e.g. copying “Online” for a drawn status icon) or cancel copying if the cell has no useful textual representation. Cancellation would leave the existing clipboard contents unchanged.
That would give ordinary text cells convenient built-in copying while allowing applications to decide what copying means for their custom content.
One small detail in Bodevinaat’s example: CellAtPoint can return Nothing when clicking a header, scrollbar or empty area, so check for that before accessing MousePos.Row and MousePos.Column.
Regarding search/query functionality, could you expand on what you have in mind? Finding the next matching cell, filtering the displayed rows, or querying the underlying data would each involve rather different behaviour.