Bueno pues por fin pude encontrar algo que me sirve.
La solucion es pintar la celda y con eso se elimina un borde en este caso el del lado derecho. Aunque claro esta que el usuario va a notar dicha columna pero es lo que hasta el momento e encontrado.
Todo va en el CellPainting:
Código C#:
Ver original// comprobar que la fila y columna son las adecuadas
if (e.RowIndex >= 0 && (e.ColumnIndex == 3 || e.ColumnIndex==1))
{
Color clrFondoCelda;
Color clrTextoCelda;
// en función de si la celda está o no seleccionada
// establecer los colores
if ((e.State & DataGridViewElementStates.Selected) == DataGridViewElementStates.Selected)
{
clrFondoCelda = SystemColors.Highlight;
clrTextoCelda = SystemColors.Window;
}
else
{
clrFondoCelda = SystemColors.Window;
clrTextoCelda = SystemColors.WindowText;
}
// rellenar el rectángulo de la celda con el color correspondiente
e.Graphics.FillRectangle(new SolidBrush(clrFondoCelda), e.CellBounds);
// dibujar solamente la línea vertical de la celda
e.Graphics.DrawLine(new Pen(SystemColors.ActiveBorder),
new Point(e.CellBounds.X, e.CellBounds.Y + e.CellBounds.Height - 1),
new Point(e.CellBounds.X + e.CellBounds.Width, e.CellBounds.Y + e.CellBounds.Height - 1));
// si la celda tiene valor
if (e.Value != null)
{
// calcular el tamaño del texto
Size szTexto;
szTexto = TextRenderer.MeasureText(e.Value.ToString(), e.CellStyle.Font);
// dibujar el texto
TextRenderer.DrawText(e.Graphics, e.FormattedValue.ToString(), e.CellStyle.Font, e.CellBounds, clrTextoCelda);
}
e.Handled = true;
Espero les sirva