Travailler sur une application Windows Mobile 6.5 et avoir un problème qui, à mon avis, serait traité automatiquement. J'ai un panneau sur le formulaire et sa propriété AutoScroll est définie sur true. Avoir une zone de texte qui affiche un panneau d'entrée sur le focus. Pour tester, je place la zone de texte en dehors du panneau visible pour forcer la barre de défilement. Cliquer dans la zone de texte affiche le panneau d'entrée qui dans son événement EnabledChanged redimensionne le panneau. Comme le réglage du focus sur un contrôle situé en dehors de la zone visible force le panneau à défiler (j'ai testé cela et fonctionne comme prévu), je m'attendrais à ce que lorsque le panneau est redimensionné, il défile vers la texbox ciblée, mais ce n'est pas le cas.Le panneau ne défile pas vers le contrôle de mise au point lorsque le panneau de saisie s'ouvre
Voici un code de démonstration rapide:
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
panel1.Size = this.ClientRectangle.Size;
TextBox t = new TextBox();
t.Size = new Size(100, 20);
// put it out of the panel's bounds
t.Location = new Point(10, 400);
t.GotFocus += new EventHandler(t_GotFocus);
t.LostFocus += new EventHandler(t_LostFocus);
panel1.Controls.Add(t);
t = new TextBox();
t.Size = new Size(100, 200);
t.Location = new Point(10,10);
panel1.Controls.Add(t);
}
void t_LostFocus(object sender, EventArgs e)
{
inputPanel1.Enabled = false;
}
void t_GotFocus(object sender, EventArgs e)
{
inputPanel1.Enabled = true;
}
private void inputPanel1_EnabledChanged(object sender, EventArgs e)
{
if (inputPanel1.Enabled)
panel1.Size = inputPanel1.VisibleDesktop.Size;
else
panel1.Size = this.ClientRectangle.Size;
}
}
Probablement, vous voudrez peut-être ajouter un tag "Windows-mobile" à votre question afin que d'autres experts peuvent le remarquer et vous aider :) – Gan