急!TStringGrid或者TDrawGrid嵌套下拉列表,知道的请进!
使用C++Builder 2010 希望在TStringGrid 或者 TDrawGrid中通过使用TInplaceEditList(EditStyle=esPickList)
嵌套下拉列表!
整了好长时间没整出来了!望高手指点。
[解决办法]
//大致这样做,在Cell的相关事件里
if( !m_ComboBox )
m_ComboBox = new TComboBox(this);
m_ComboBox->Visibel = false;
m_ComboBox->BorderStyle = bsNone;
m_ComboBox->Parent = StringGrid1;
m_ComboBox->Top =
m_ComboBox->Left =
m_ComboBox->Width =
m_ComboBox->Height=
m_ComboBox->Visible=true;
[解决办法]
楼主分明想要 TInplaceEditList 实现的.
[解决办法]
//---------------------------------------#ifndef uDropListGridH#define uDropListGridH#include <Windows.h>#include <Messages.hpp>#include <SysUtils.hpp>#include <Classes.hpp>#include <Controls.hpp>#include <Grids.hpp>typedef void __fastcall (__closure *TOnGetEditStyle)(int ACol, int ARow, TEditStyle &EditStyle);typedef void __fastcall (__closure *TOnGridEditButtonClick)(TObject *Sender, int ACol, int ARow);class TDropListGrid: public TStringGrid{private: int FButtonWidth; int FDropDownRows; TOnGridEditButtonClick FOnEditButtonClick; TOnGetPickListItems FOnGetPickListItems; TOnGetEditStyle FOnGetEditStyle; void __fastcall SetButtonWidth(int Value); void __fastcall SetDropDownRows(int Value); void __fastcall SetOnEditButtonClick(TOnGridEditButtonClick Value); void __fastcall SetOnGetPickListItems(TOnGetPickListItems Value); void __fastcall SetOnGetEditStyle(TOnGetEditStyle Value); void __fastcall ButtonClick(TObject *Sender); void __fastcall GetPickListItems(int ACol, int ARow, TStrings *Items);protected: TInplaceEdit * __fastcall CreateEditor(); DYNAMIC TEditStyle __fastcall GetEditStyle(int ACol, int ARow);public: __fastcall TDropListGrid(TComponent *AOwner); __fastcall ~TDropListGrid();__published: __property int ButtonWidth = { read=FButtonWidth, write=SetButtonWidth }; __property int DropDownRows = { read=FDropDownRows, write=SetDropDownRows }; __property TOnGridEditButtonClick OnEditButtonClick = { read=FOnEditButtonClick, write=SetOnEditButtonClick }; __property TOnGetPickListItems OnGetPickListItems = { read=FOnGetPickListItems, write=SetOnGetPickListItems }; __property TOnGetEditStyle OnGetEditStyle = { read=FOnGetEditStyle, write=SetOnGetEditStyle };};#endif