2010-01-20 5 views
0

J'ai une fonction GetControlRectangle (Rectangle MethodRect) qui accepte le rectangle du contrôle.Trouver la fonction utilisée pour assigner la variable (via la variable qui est assinged)

Maintenant j'écris le code comme Rectangle rct = dataGridView1.GetCellDisplayRectangle (1,0, false); qui trouve l'emplacement de la cellule (1,0) du datagridview1.

Et je passe cette rct la méthode GetControlRectangle.

Maintenant, comment trouver à travers le MethodRect (qui est l'argument dans la méthode) que la fonction utilisée pour obtenir ce point rectangle comme GetCellDisplayRectangle() ou GetColumnDisplayRectangle() . Parce que je veux savoir dans la méthode GetControlRectangle() que ce point est pour columnheader ou cellule et il est pour la cellule alors pour quelle cellule. En bref, je veux savoir quelle fonction a été utilisée par l'intermédiaire d'une variable affectée Rectangle rct = dataGridView1.GetCellDisplayRectangle (1,0, false); via rct Je veux savoir quelle fonction a été utilisée pour affecter cette variable.

Répondre

1

si je bien compris, il devrait simplement modifier la fonction GetControlRectangle(Rectangle MethodRect) afin qu'il ressemble GetControlRectangle(Rectangle MethodRect, bool IsHeader) et ensuite le code d'appel ne la décision de "quelle fonction a été appelée".

0

Si j'ai bien compris, vous devez convertir rct en paire getter/setter. Dans le setter, créez un nouveau System.Diagnostics.StackTrace() (appelez simplement la méthode ToString() pour obtenir une représentation lisible). Il contiendra la pile d'appel, dans ce cas, la fonction qui définit la nouvelle valeur pour rct.

Quelque chose comme ça (remplacer exception avec plus de manutention):

Rectangle _rct=null; 
Rectangle rct { 
    get { return _rct; } 
    set { 
    throw new Exception(new System.Diagnostics.StackTrace().ToString()); 
    //_rct=value; 
    } 
} 
+0

Pouvez-vous expliquer en détail pleaze? – Harikrishna

+0

qu'est-ce que System.Diagnostics.StackTrace()? – Harikrishna

Questions connexes