We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy.
Unfortunately, activation email could not send to your email. Please try again.

How to replace "arrow" of rowheader by another image?

Thread ID:

Created:

Updated:

Platform:

Replies:

23698 Jan 18,2005 04:27 AM Jan 28,2005 01:31 AM Windows Forms 8
loading
Tags: GridControl
David Bosak
Asked On January 18, 2005 04:27 AM

How to replace "arrow" image of rowheader by another image (e.g. hand_image)?

Administrator [Syncfusion]
Replied On January 18, 2005 05:54 AM

One thing you can do is to handle the CellDrawn event, and if it is the current rowheader that has been drawn, then draw your bitmap over it. Here is code that assume the image you want to use is 0th entry in the ImageList, this.imageList1. private void gridDataBoundGrid1_CellDrawn(object sender, GridDrawCellEventArgs e) { if(e.ColIndex == 0 && e.RowIndex == this.gridDataBoundGrid1.CurrentCell.RowIndex) { Rectangle rect = GridUtil.CenterInRect(e.Bounds, this.imageList1.ImageSize); GridStaticCellRenderer.DrawImage(e.Graphics, this.imageList1, 0, rect, false); } }

David Bosak
Replied On January 18, 2005 05:30 PM

However, I see both the arrow image and my image. How to remove the arrow image?

Administrator [Syncfusion]
Replied On January 18, 2005 06:09 PM

You can try adding this to your form.Load. this.gridDataBoundGrid1.BaseStylesMap["Row Header"].StyleInfo.CellType = "Header";

David Bosak
Replied On January 18, 2005 08:16 PM

It worked OK. Thanks,

Phuoc Tu
Replied On January 27, 2005 01:50 AM

Similar this, I use SplitterControl for the grid. When I focus a cell on right grid, the image not changed. I debug and found: e.RowIndex different with this.grid.CurrentCell.RowIndex Can you teach me?

Administrator [Syncfusion]
Replied On January 27, 2005 02:23 AM

If you are using our TabBarSplitterControl or GridRecordNavigationControl (that supports a dynamic splitter), then you must do extra work to make sure all events are properly handled when you add/remove panes in the splitter. This may be why things are not working for you. See this KB that explains how to handle this problem. http://64.78.18.34/Support/article.aspx?id=580

Phuoc Tu
Replied On January 27, 2005 07:15 PM

I tried to use but it still not worked. Please help me. And here is my code. GridDataBoundGrid rightGrid = null; private void splitterControl1_PaneCreated(object sender, Syncfusion.Windows.Forms.SplitterPaneEventArgs e) { rightGrid = e.Control as GridDataBoundGrid; if (rightGrid != null) { rightGrid.CellDrawn += new GridDrawCellEventHandler(rightGrid_CellDrawn); rightGrid.CurrentCellChanged += new EventHandler(rightGrid_CurrentCellChanged); } } private void gridROPStore_CellDrawn(object sender, Syncfusion.Windows.Forms.Grid.GridDrawCellEventArgs e) { if(e.ColIndex == 0 && e.RowIndex == this.gridROPStore.CurrentCell.RowIndex && e.RowIndex > 0) { Rectangle rect = GridUtil.CenterInRect(e.Bounds, this.imageList1.ImageSize); GridStaticCellRenderer.DrawImage(e.Graphics, this.imageList1, 0, rect, false); } } private void gridROPStore_CurrentCellChanged(object sender, System.EventArgs e) { int iRow = gridROPStore.CurrentCell.RowIndex, iCol = gridROPStore.CurrentCell.ColIndex; switch(iCol) { case 5: case 7: case 11: case 19: case 21: case 23: case 25: case 27: case 29: case 31: case 33: case 35: case 37: case 39: case 41: case 43: gridROPStore[iRow, iCol+1].CellValue = DateTime.Now; break; } } private void rightGrid_CellDrawn(object sender, Syncfusion.Windows.Forms.Grid.GridDrawCellEventArgs e) { if(e.ColIndex == 0 && e.RowIndex == this.rightGrid.CurrentCell.RowIndex && e.RowIndex > 0) { Rectangle rect = GridUtil.CenterInRect(e.Bounds, this.imageList1.ImageSize); GridStaticCellRenderer.DrawImage(e.Graphics, this.imageList1, 0, rect, false); } } private void rightGrid_CurrentCellChanged(object sender, System.EventArgs e) { int iRow = rightGrid.CurrentCell.RowIndex, iCol = rightGrid.CurrentCell.ColIndex; switch(iCol) { case 5: case 7: case 11: case 19: case 21: case 23: case 25: case 27: case 29: case 31: case 33: case 35: case 37: case 39: case 41: case 43: rightGrid[iRow, iCol+1].CellValue = DateTime.Now; break; } } Thanks Phuoc Tu

Administrator [Syncfusion]
Replied On January 28, 2005 01:31 AM

Do not have two CellDrawn and CurrentCellChanged event handlers. Instead have exactly one CellDrawn and one CurrentCellChanged event handlers that are used for any grid. Also, you will not be able to check the currentcell, instead check for the binder.CurrentPosition. Here is a sample with this working in the splitter you see in a GridRecordNavigationControl. http://www.syncfusion.com/forums/Uploads/GRNC_ImageInHeader.zip

CONFIRMATION

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.

You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.

;