读书人

TValueListEdit控件在程序中统制单元格

发布时间: 2013-12-26 15:24:01 作者: rapoo

TValueListEdit控件在程序中控制单元格是否可编辑
想实现的效果:
1、点击按钮时ValuelistEdit可编辑(key与Value都可以编辑),再点击一次不可编辑(key与Value都不可以编辑)
2、第二行的Value值可编辑,key值不可编辑。

我的代码如下,为什么会没有效果。在StringGrid控件下,同样的写法却有效果。


void __fastcall TForm1::VLEditSelectCell(TObject *Sender,
int ACol, int ARow, bool &CanSelect)
{
/* if(VLEdit->Col != 0 && VLEdit->Row == 1)
{
VLEdit->KeyOptions<<keyEdit;
VLEdit->Options<<goEditing;
}
else
{
VLEdit->KeyOptions>>keyEdit;
VLEdit->Options>>goEditing;
}
*/
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
Form1->flag = -1;//flag初始值为-1
VLEdit->InsertRow("1", "潮汐海灵",1);
VLEdit->InsertRow("2", "德邦总管", 1);
VLEdit->InsertRow("3", "安妮", 1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
flag*=-1;
if(1 == flag)
VLEdit->Options>>goEditing;
if(-1 == flag)
VLEdit->Options<<goEditing;
}
//---------------------------------------------------------------------------

[解决办法]
.h 文件中:
private:// User declarations
bool m_bFlag;


.cpp文件中:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
m_bFlag = true;

VLEdit->InsertRow("1", "潮汐海灵",1);
VLEdit->InsertRow("2", "德邦总管", 1);
VLEdit->InsertRow("3", "安妮", 1);
}

// ---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
m_bFlag = !m_bFlag;

VLEdit->Options = m_bFlag? VLEdit->Options << goEditing:
VLEdit->Options >> goEditing;
}

[解决办法]
集合在 VCL 泛使用...然而在 C++ 有如同 Object Pascal 一的 Set 型...了使定集合性有所效果...必使用妖哥的方式做明的指派......

读书人网 >C++ Builder

热点推荐