|
with this example i always get -1 as output.
ListView::ColumnHeaderCollection ^test = lstListUsers->Columns;
Int32 test1 = test->IndexOfKey("ID");
i Want to get index number for Specific Column. Can somebody help me with it?
Thanks in advance
|
|
|
|
|
Can you post the code you're using to create the headers in the control?
System.IO.Path.IsPathRooted() does not behave as I would expect
|
|
|
|
|
Josh Gray wrote: Can you post the code you're using to create the headers in the control?
#if defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_ID)
lstListUsers->Columns->Add(TABLE_USERS_COLUMN_ID_DISPLAY_NAME, 50);
#endif //defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_ID)
#if defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_USERNAME)
lstListUsers->Columns->Add(TABLE_USERS_COLUMN_USERNAME_DISPLAY_NAME, 80);
#endif //defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_USERNAME)
#if defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_PASSWORD)
lstListUsers->Columns->Add(TABLE_USERS_COLUMN_PASSWORD_DISPLAY_NAME, 80);
#endif //defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_PASSWORD)
#if defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_FIRSTNAME)
lstListUsers->Columns->Add(TABLE_USERS_COLUMN_FIRSTNAME_DISPLAY_NAME, 80);
#endif //defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_FIRSTNAME)
#if defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_LASTNAME)
lstListUsers->Columns->Add(TABLE_USERS_COLUMN_LASTNAME_DISPLAY_NAME, 100);
#endif //defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_LASTNAME)
#if defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_CITY)
lstListUsers->Columns->Add(TABLE_USERS_COLUMN_CITY_DISPLAY_NAME, 80);
#endif //defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_CITY)
#if defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_ADDRESS)
lstListUsers->Columns->Add(TABLE_USERS_COLUMN_ADDRESS_DISPLAY_NAME, 80);
#endif //defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_ADDRESS)
#if defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_PHONENUMBER)
lstListUsers->Columns->Add(TABLE_USERS_COLUMN_PHONENUMBER_DISPLAY_NAME, 110);
#endif //defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_PHONENUMBER)
#if defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_EMAIL)
lstListUsers->Columns->Add(TABLE_USERS_COLUMN_EMAIL_DISPLAY_NAME, 150);
#endif //defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_EMAIL)
#if defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_JOINDATE)
lstListUsers->Columns->Add(TABLE_USERS_COLUMN_JOINDATE_DISPLAY_NAME, 80);
#endif //defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_JOINDATE)
#if defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_LOGINLEVEL)
lstListUsers->Columns->Add(TABLE_USERS_COLUMN_LOGINLEVEL_DISPLAY_NAME, 80);
#endif //defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_LOGINLEVEL)
#if defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_GMT)
lstListUsers->Columns->Add(TABLE_USERS_COLUMN_GMT_DISPLAY_NAME, 80);
#endif //defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_GMT
#if defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_COMMENT)
lstListUsers->Columns->Add(TABLE_USERS_COLUMN_COMMENT_DISPLAY_NAME, 150);
#endif //defined(USER_POWER_TABLE_USERS_ENABLE_COLUMN_COMMENT)
|
|
|
|
|
Yuk,
Why are you inserting the column using a #define for the name but then not using the same #define as the key to find the column?
System.IO.Path.IsPathRooted() does not behave as I would expect
|
|
|
|
|
Before i posted in this forum, that was my first choice, but all i tried, put out just -1.
I wan't this index number, when i click on it and then click delete, i woud know, witch cell to read. I am using alot of #define for enormous setting. Some coud be disabled. If i can't find by ID, will try by Username or email. (Only 3 options that can be unique). ps i have almost all Columns enabled, except Comment.
|
|
|
|
|
Try to create a very small test program that has the same problem without all the #defines and post the code
System.IO.Path.IsPathRooted() does not behave as I would expect
|
|
|
|
|
listView1->Dock = DockStyle::Fill;
listView1->View = View::Details;
listView1->FullRowSelect = true;
listView1->Columns->Add("Col1", 100);
listView1->Columns->Add("Col2", 100);
ListViewItem ^lvItem = gcnew ListViewItem();
ListViewItem::ListViewSubItem ^lvSub1 = gcnew ListViewItem::ListViewSubItem();
lvItem->Text = "Cell1";
lvSub1->Text = "Cell2";
lvItem->SubItems->Add(lvSub1);
listView1->Items->Add(lvItem);
ListView::ColumnHeaderCollection ^test = listView1->Columns;
Int32 test1 = test->IndexOfKey("ID");
MessageBox::Show(test1.ToString());
And it is still same. I get -1
|
|
|
|
|
Because your columns are called "Col1" and "Col2" not "ID"
System.IO.Path.IsPathRooted() does not behave as I would expect
|
|
|
|
|
Did you tried example?
In that example i made typo, but even if i change "ID" to "Col2", the result is same.
|
|
|
|
|
bsaksida wrote: Did you tried example?
Nope, dont have time to do that today
Do the columns appear on the screen?
System.IO.Path.IsPathRooted() does not behave as I would expect
|
|
|
|
|
Yes everything was ok, except i cant get Index key for specific column.
|
|
|
|
|
Found a workaround this problem:
MessageBox::Show(listView1->Columns[1]->Text);
If i used it in the for loop, i coud get index ot the columns
|
|
|
|
|
Guys,
I'm trying a little test app in C++. I added a button and an event handler for this button.
I'm creating a test app that has to call some dll functions in late binding. Although I have done this before I tried to do a simple AfxMessageBox just to get the hang of it again. And it fails (yes this line: AfxMessageBox("Test"); fails. Even CString test = "My test here."; fails.)
so what did I forget? (I made a MFC app via the wizard, it gave me an error when adding the control variable for the button, but the rest it did just fine). MSDN says I have to do it like this. (and my memory, pray to God it didn't fail me, says so too;P)
the error message I get is :
Error 1 error C2440: 'initializing' : cannot convert from 'const char [9]' to 'ATL::CSimpleStringT<BaseType>' d:\projects\projects c++\loaddlltest\loaddlltest\loaddlltestdlg.cpp 92
tnx...
[MODIFIED]It doesn't work in 2005, it does work in 6.0 ...[/MODIFIED]
V.
If I don't see you in this world, I'll see you in the next one... And don't be late. (Jimi Hendrix)
|
|
|
|
|
AfxMessageBox(_T("Test"));
CString test = _T("My test here.");
led mike
|
|
|
|
|
works idd, I'll have to look up why some day .
tnx
|
|
|
|
|
I think it is just because the default project settings in VS2005 is UNICODE.
led mike
|
|
|
|
|
BOOL WriteFile(
HANDLE hFile, // handle to file to write to
LPCVOID lpBuffer, // pointer to data to write to file
DWORD nNumberOfBytesToWrite, // number of bytes to write
LPDWORD lpNumberOfBytesWritten, // pointer to number of bytes written
LPOVERLAPPED lpOverlapped // pointer to structure for overlapped I/O
);
When using this function and it's return false (failed) can i rely on lpNumberOfBytesWritten value?
(no answer in MSDN)
|
|
|
|
|
g_sasha wrote: (no answer in MSDN)
Really? In the documentation [^]it says:
Return Value
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
led mike
|
|
|
|
|
I asking something else, Can i rely on LPDWORD lpNumberOfBytesWritten,
parameter in case of failure
|
|
|
|
|
g_sasha wrote: in case of failure
don't you think that might depend on what the error from GetLastError is? Why have you not posted the Error information?
led mike
|
|
|
|
|
There is no error (yet), i dont think it's depend on GetLastError, i think it's should be just yes/no answer.
Can you think of example where it may be depend on error ?
|
|
|
|
|
Probably a bad idea. And you're asking in the wrong forum
System.IO.Path.IsPathRooted() does not behave as I would expect
|
|
|
|
|
|
Hi all,
I am writing a console app which will in turn run a windows application then simulate sending keyboard command to the application.
I have been able to run the app and get it's handle and all that - every thing here is fine.
To issue keyboard command I will have to use the
SendKeys::SendWait("%F");
The '%F' simulates the Alt-F to access the menu.
Seeing that SendKeys is a member of the System::Windows::Form namespace I have to include this in my code, which I have done like this:
<br />
#using "System.Windows.Forms.dll"<br />
using namespace System::Windows::Forms;<br />
When I then compile the code, I get the following errors:
: error C3083: 'Windows': the symbol to the left of a '::' must be a type
: error C2039: 'Forms' : is not a member of 'System'
: error C2871: 'Forms' : a namespace with this name does not exist
: error C3083: 'Windows': the symbol to the left of a '::' must be a type
: error C3083: 'Forms': the symbol to the left of a '::' must be a type
: error C3083: 'SendKeys': the symbol to the left of a '::' must be a type
: error C2039: 'SendWait' : is not a member of 'System'
: error C3861: 'SendWait': identifier not found
So, what have I done wrong and how is this rectified ??
Pete
PS: Writing with VC++ 2005
|
|
|
|
|
you don't need to use #using "System.Windows.Forms.dll"
yust by adding namespace, you aotomaticly add references
Fritzables wrote: SendKeys::SendWait("%F");
The '%F' simulates the Alt-F to access the menu.
Dou you men like this:
menu1->Text = "&File"; // ALT-F
menu2->Text = "&Edit"; // ALT-E
menu3->Text = "E&xit"; // ALT-X
|
|
|
|