Thread ID: |
Created: |
Updated: |
Platform: |
Replies: |
24786 | Feb 10,2005 05:26 PM UTC | Feb 11,2005 04:20 PM UTC | WinForms | 2 |
![]() |
Tags: GridControl |
public class GridModelEx : GridModel, ICreateControl
{
Control ICreateControl.CreateControl()
{
GridControlBase grid = new SampleGrid(this);
grid.FillSplitterPane = true;
return grid;
}
}
and change the MenuAction:
public class NewWorkbookFile : BasicAction
{
int windowCount = 0;
WorkbookModel workbook;
public override void InvokeAction(object sender, EventArgs e)
{
windowCount++;
workbook = new WorkbookModel("Workbook");
GridModel sheet1 = new GridModelEx();
SampleGrid.SetupGridModel(sheet1);
GridModel sheet2 = new GridModelEx();
SampleGrid.SetupGridModel(sheet2);
workbook.Worksheets.Add(new WorksheetModel(workbook, "Sheet 1", sheet1));
workbook.Worksheets.Add(new WorksheetModel(workbook, "Sheet 2", sheet2));
WorkbookForm doc = new WorkbookForm(workbook);
doc.ThemesEnabled = true;
doc.Text = workbook.Name + windowCount.ToString();
doc.MdiParent = MainWindow;
doc.Show();
}
}
The other problem is that there is a bug with adding worksheets. We''ll need to fix that.
But, I was able to work around the issue with the following code and got it working:
public class SampleGrid : GridControl
{
protected override void OnCellDoubleClick(GridCellClickEventArgs e)
{
WorkbookForm form = FindForm() as WorkbookForm;
if (form != null)
{
WorkbookModel workbook = form.WorkbookView.Workbook;
GridModel sheet3 = new GridModelEx();
SampleGrid.SetupGridModel(sheet3);
WorksheetModel workSheetModel = new WorksheetModel(workbook, "Sheet 3", sheet3);
form.WorkbookView.TabBarPages.Add(new WorksheetView(workSheetModel, form.WorkbookView));
workbook.Worksheets.BeginUpdate();
workbook.Worksheets.Add(workSheetModel);
workbook.Worksheets.EndUpdate();
}
base.OnCellDoubleClick (e);
}
Stefan
>Looking at GridPad Example.. based on that i created a new sample app using
>
>WorkbookModel workBook = new WorkbookModel("WorkBook");
>workBook.Worksheets.Add(new WorksheetModel(workBook,"Sheet 1",gridDataBoundGrid1.Model));
>workBook.Worksheets.Add(new WorksheetModel(workBook,"Sheet 2",gridDataBoundGrid2.Model));
>WorkbookForm doc = new WorkbookForm(workBook );
>doc.Show();
>
>I can see both the grid displayed inside worksheet... but doesn''t allow free-flow cell-by-cell or row navigation.. the same applies to Gridpad example.. if a new grid is opened inside workbook frame.. it doesn''t allow free-flow navigation in the grid nested inside the worksheet..
>
>Furthermore is there any event available that is raised as soon as user clicks on different worksheet...
>
>And finally is it possible to add a sheet once the worksheet form is loaded because i tried using Add or Insert method it raised an Specified Argument out of range exception
>
>workBook.Worksheets.Insert(0,new WorksheetModel(workBook,"Sheet 3",gridDataBoundGrid2.Model));
>or
>workBook.Worksheets.Add(new WorksheetModel(workBook,"Sheet 3",gridDataBoundGrid2.Model));
>
>Regards
>Yogi
> public class GridModelEx : GridModel, ICreateControl
> {
> Control ICreateControl.CreateControl()
> {
> GridControlBase grid = new SampleGrid(this);
> grid.FillSplitterPane = true;
> return grid;
> }
> }
>
>
>and change the MenuAction:
>
>
> public class NewWorkbookFile : BasicAction
> {
> int windowCount = 0;
> WorkbookModel workbook;
> public override void InvokeAction(object sender, EventArgs e)
> {
> windowCount++;
> workbook = new WorkbookModel("Workbook");
> GridModel sheet1 = new GridModelEx();
> SampleGrid.SetupGridModel(sheet1);
> GridModel sheet2 = new GridModelEx();
> SampleGrid.SetupGridModel(sheet2);
>
> workbook.Worksheets.Add(new WorksheetModel(workbook, "Sheet 1", sheet1));
> workbook.Worksheets.Add(new WorksheetModel(workbook, "Sheet 2", sheet2));
>
> WorkbookForm doc = new WorkbookForm(workbook);
> doc.ThemesEnabled = true;
> doc.Text = workbook.Name + windowCount.ToString();
> doc.MdiParent = MainWindow;
> doc.Show();
> }
>
> }
>
>
>The other problem is that there is a bug with adding worksheets. We''ll need to fix that.
>
>But, I was able to work around the issue with the following code and got it working:
>
>
> public class SampleGrid : GridControl
> {
> protected override void OnCellDoubleClick(GridCellClickEventArgs e)
> {
> WorkbookForm form = FindForm() as WorkbookForm;
> if (form != null)
> {
> WorkbookModel workbook = form.WorkbookView.Workbook;
>
> GridModel sheet3 = new GridModelEx();
> SampleGrid.SetupGridModel(sheet3);
>
> WorksheetModel workSheetModel = new WorksheetModel(workbook, "Sheet 3", sheet3);
> form.WorkbookView.TabBarPages.Add(new WorksheetView(workSheetModel, form.WorkbookView));
> workbook.Worksheets.BeginUpdate();
> workbook.Worksheets.Add(workSheetModel);
> workbook.Worksheets.EndUpdate();
> }
>
> base.OnCellDoubleClick (e);
> }
>
>
>Stefan
>
>>Looking at GridPad Example.. based on that i created a new sample app using
>>
>>WorkbookModel workBook = new WorkbookModel("WorkBook");
>>workBook.Worksheets.Add(new WorksheetModel(workBook,"Sheet 1",gridDataBoundGrid1.Model));
>>workBook.Worksheets.Add(new WorksheetModel(workBook,"Sheet 2",gridDataBoundGrid2.Model));
>>WorkbookForm doc = new WorkbookForm(workBook );
>>doc.Show();
>>
>>I can see both the grid displayed inside worksheet... but doesn''t allow free-flow cell-by-cell or row navigation.. the same applies to Gridpad example.. if a new grid is opened inside workbook frame.. it doesn''t allow free-flow navigation in the grid nested inside the worksheet..
>>
>>Furthermore is there any event available that is raised as soon as user clicks on different worksheet...
>>
>>And finally is it possible to add a sheet once the worksheet form is loaded because i tried using Add or Insert method it raised an Specified Argument out of range exception
>>
>>workBook.Worksheets.Insert(0,new WorksheetModel(workBook,"Sheet 3",gridDataBoundGrid2.Model));
>>or
>>workBook.Worksheets.Add(new WorksheetModel(workBook,"Sheet 3",gridDataBoundGrid2.Model));
>>
>>Regards
>>Yogi This post will be permanently deleted. Are you sure you want to continue?
Sorry, An error occured while processing your request. Please try again later.
This page will automatically be redirected to the sign-in page in 10 seconds.