为什么ListBox执行DeleteString结果删的不对?该怎么处理
为什么ListBox执行DeleteString结果删的不对?
DDX_LBString(pDX, IDC_LIST1, m_Username);
例如ListBox里有
1
2
3
4
我想删除2,但是执行完毕以后ListBox里面的项目会变成
1
2
4
------解决方案--------------------
你可以调试一下啊,看看到执行DeleteString()时delstr的值是多少啊?
根据你的结果,可能delstr的值可能是2,则把第三行删除了。
可能你的index.dat文件的开头有个空行,或其他原因导致,文件中的行跟ListBox中的行对应不上了。
DDX_LBString(pDX, IDC_LIST1, m_Username);
- C/C++ code
UpdateData(); UINT delstr = 0; CString str; CStdioFile fileb(_T("D:\\\\DATAT\\index.dat"),CFile::modeRead); while(fileb.ReadString(str)) { if (str==m_Username) { ((CListBox*)GetDlgItem(IDC_LIST1))->DeleteString(delstr); break; } ++delstr; } UpdateData(FALSE);
例如ListBox里有
1
2
3
4
我想删除2,但是执行完毕以后ListBox里面的项目会变成
1
2
4
------解决方案--------------------
你可以调试一下啊,看看到执行DeleteString()时delstr的值是多少啊?
根据你的结果,可能delstr的值可能是2,则把第三行删除了。
可能你的index.dat文件的开头有个空行,或其他原因导致,文件中的行跟ListBox中的行对应不上了。