ajm (Membre)
Inscrit le : 16-03-2011
Messages: 38
Snippets: 0
Tutoriels: 0
Hors ligne |
Bonjour,
J'ai un wxGrid dans mon application, et je veux qu'on ne peut pas taper que des chiffres (0-9) dans les cellules et au lieu de '.' celui-ce change automatiquement en ','. J'ai donc essayé d'utiliser le wxTextValidator mais je n'arrive pas à le faire. ---------- Finalement j'ai trouver une solution, je n'ai pas utiliser le wxTextValidator mais j'ai exploité le code dans "http://www.wxdev.fr/snippet19-wxGrid-Valider_cellule_et_deplacer_curseur_avec_fleches.html"
Voici le code qui contrôle l’éditeur dans une cellule: void wxGrid2Frm::WxGrid1EditorCreated(wxGridEditorCreatedEvent& event) { editor=(wxRichTextCtrl*)event.GetControl(); editor->Connect(wxEVT_KEY_UP,wxKeyEventHandler(wxGrid2Frm::wxGrid2FrmKeyUp),NULL,this);
}
void wxGrid2Frm::wxGrid2FrmKeyUp(wxKeyEvent& event) { if (WxGrid1->IsCellEditControlEnabled ()) { wxString txt,num=editor->GetValue(); for(int i=0;i<int(num.Len());i++) { wxString tmp=""; tmp<<num[i]; if(tmp.IsNumber() and tmp!="-" and tmp!="+")txt<<num[i]; else if((tmp=="." or tmp==",") and txt.Freq(',')==0)txt<<","; } editor->SetValue(""); editor->AppendText(txt); } }
Si vous voulez essayer l'application, télécharger le fichier dans la lien ci-dessous:
http://www.megaupload.com/?d=AXHSHGSP
Dernière modification par ajm (19-08-2011 08:42:22)
|