OnOwnerDrawCell事件是在每一个单元格绘制时都会触发,一般来说是用于根据条件去动态设置每个单元格的内容,比如判断当单元格值>100时,设置背景色为红色。
如果是用于绘制的话,也是根据这个单元格的范围e.Bounds来作为坐标范围,
目前你的需求,可以用Paint事件,在flexgrid绘制时来加图标,通过col.WidthDisplay可以获取到实际显示的宽度,由于拖动后,flexgrid也会重绘,因此也不需要再特别设置
- private void C1FlexGridEx_Paint(object sender, PaintEventArgs e)
- {
- int xoffset = 0;
- foreach (Column col in this.Cols)
- {
- if(!col.AllowEditing)
- e.Graphics.DrawImage(Properties.Resources.Lock, xoffset, 3, 10, 11);
- xoffset += col.WidthDisplay ;
-
- }
- }
复制代码 |