Bonjour,
Programmeur C et C++ j'ai décidé d'essayer le C# mais certaines choses m'échappent encore.
J'ai une application travaillant sur des nombres dans différentes bases. Un membre donnée de la classe Form1 nommé m_base contient la base actuellement utilisée.
Sur ma form principale, j'ai une editbox que j'ai subclassée, de façon à ce que suivant la base actuellement utilisée, l'utilisateur n'entre pas n'importe quoi. Par exemple, si nous sommes en base 2, l'utilisateur ne pourra enter que 0 ou 1 (de 0 à 9 en base 10, etc.).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public partial class Form1 : Form { public uint m_base; //base utilisée [...cut...]
Ma classe de subclassing de l'editbox se nomme SubClassTextBox :
Dans cette classe, je dois connaitre la valeur de m_base afin de faire le traitement désiré.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public class SubClassTextBox : TextBox { private const int WM_CHAR = 0x102; protected override void WndProc(ref Message m) { switch (m.Msg) { case WM_CHAR: // ? comment obtenir m_base de form1 ? if (form1.m_base == 2)//base binaire { if (m.WParam.ToInt32() >= 0x30 && m.WParam.ToInt32() <= 0x31) base.WndProc(ref m); else break; } [...CUT...]
Mais comment obtenir la valeur de form1.m_base dans ma classe SubClassTextBox ?
Je ne pense pas pouvoir passer de valeur à WndProc (dans ce cas là , je passais une ref de Form1)...
En C++, j'aurais fait une fonction friend mais en C# cela ne semble pas exister...
Y'a t'il une solution ?
En vous remerciant, et je suis désolé si la question est triviale mais je débute en C#.
Partager