Veo una contradicción en la pregunta: la has puesto en el foro de VB5/6, pero en el título dice que es de C# y en el texto hable del datagridview, así que todo hace sospechar que la duda es de .Net y no de VB5/6.
Suponiendo que efectivamente el problema es de .Net, entonces la forma más sencilla de gestionar el cálculo de la columna consiste en no hacerlo directamente sobre el DataGridView, sino hacerlo sobre el objeto en memoria que presumiblemente habrás vinculado
al DataGridView. La forma de hacerlo depende del tipo de objeto. Si es un IEnumerable con objetos de una clase tuya, y estás mostrando sus propiedades en el Grid, entonces añade una propiedad adicional de solo-lectura que en su getter haga el cálculo a partir
de las otras dos propiedades (cantidad y precio). Si necesitas ayuda con esto, el sitio adecuado para preguntarlo es el foro de C#:
https://social.msdn.microsoft.com/Forums/es-ES/home?forum=vcses
Si, en cambio, lo que tienes vinculado al Grid es un DataTable, entonces añade una columna más al DataTable (con el .Columns.Add) poniéndole al DataColumn en su .Expression el cálculo que quieres hacer, por ejemplo "Cantidad*Total". Si necesitas
ayuda con esto, el foro adecuado para preguntarlo es el de ADO.NET:
https://social.msdn.microsoft.com/Forums/es-ES/home?forum=netfxes
En cualquiera de los dos casos, una vez que hayas modificado el objeto del DataBinding (bien sea tu propia clase o un DataTable), el Grid adquirirá automáticamente una columna con el cálculo del Total, sin que tengas que hacerle nada más.
Finalmente, queda recordarte que si se trata de un ejercicio académico, lo más que podemos hacer es darte "pistas" como las anteriores, pero no pidas que te escribamos la solución completa ya terminada y lista para usar, porque eso desvirtuaría
la finalidad del ejercicio.