PRB: Cannot Manipulate Columns of MS DataGrid in Visual C++ at Design TimeID: Q225065
|
Microsoft DataGrid version 6.0 does not support modifications to the columns of Grid at design time when using it in Visual C++.
You can manipulate the columns of DataGrid programmatically at run time. The sample code below shows how to add/remove a column, and modify the column's caption when using ADO data control and DataGrid with an MFC CVCDataGridDlg class.
Insert the following variables and member function prototypes in the corresponding dialog class declaration:
//implementation
#include "columns.h" // CColumns collection object header file.
#include "column.h" // CColumn object header file.
#include "_recordset.h" // C_Recordset object header file.
#include "fields.h" // CFields collection object header file.
#include "field.h" // CFields object header file.
#include <comdef.h>
// Adding a column.
void CVCDataGridDlg::OnAdd()
{
//Get the total number of columns.
short i = (short)(m_DataGrid.GetColumns().GetCount());<BR/>
//Insert the new column.
m_DataGrid.GetColumns().Add(i);
CString rCaption;
GetDlgItemText(IDC_EDIT2,rCaption);
//Set the caption of the column.
m_DataGrid.GetColumns().GetItem(_variant_t(i)).SetCaption((LPCTSTR)rCaption);
m_DataGrid.Refresh();
}
// Removing a column.
void CVCDataGridDlg::OnRemove()
{
m_DataGrid.GetColumns().Remove( _variant_t((long) atoi(m_Edit.GetBuffer(m_Caption.GetLength()) )));
m_DataGrid.Refresh();
}
// Modifying a column caption.
void CVCDataGridDlg::OnModify()
{
CString rCaption, rColNum;
GetDlgItemText(IDC_EDIT1,rColNum);
GetDlgItemText(IDC_EDIT2,rCaption);
m_DataGrid.GetColumns().GetItem(_variant_t((long) atoi(rColNum))).SetCaption((LPCTSTR) rCaption);<BR/>
m_DataGrid.Refresh();
}
The behavior is by design.
Additional query words:
Keywords : kbDatabase kbVC600 kbGrpVCDB
Version : WINDOWS:6.0
Platform : WINDOWS
Issue type : kbprb
Last Reviewed: April 28, 1999