Scrollbars, fenetre fille

Signaler
Messages postés
86
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
2 avril 2008
-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
Bonjour.

Je n'arrive toujours pas a mettre des scrollbars lorsque l'image qui
s'affiche dans la fenetre est plus grande que cette fenetre.

J'ai écrit ceci pour résoudre le probleme mais l'erreur qui apparait me dit que je ne peux pas utiliser ça: >



Voila mon code:

if(bmp.Size > this.ClientSize) this.AutoScroll = true;



Comment dois je faire svp ?

25 réponses

Messages postés
86
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
2 avril 2008

Merci pour le code.

Il m'affiche bien des scrollbars dans ma fenetre maintenant.

le probleme, c'est que quand je redimentionne la fenetre qui contient
l'image, il me met une erreur non gérée. et me souligne en vert ce qui
est en vert dans le code de la form1 (form principal) ci dessous:



/// <summary>

/// Point d'entrée principal de l'application.

/// </summary>

[STAThread]

static void Main()

{

Application.Run(new Form1());

}
// il me met cette acolade en vert

private void Form1_Load(object sender, System.EventArgs e)

{

fenetreDemarrage fenetreDemarrage=new fenetreDemarrage();

fenetreDemarrage.ShowDialog();

}



// MENU OUVRIR
////////////////////////////////////////////////////////////////////////////////////



private void Ouvrir_Click(object sender, System.EventArgs e)

{

DialogResult res = OuvrirImg.ShowDialog();



if (res == DialogResult.OK)



{

//creation de la form2




Form2 frm = new Form2(OuvrirImg.FileName); //pour
obtenir l'adresse du fichier selectionné




frm.Text= OuvrirImg.FileName.Substring(
OuvrirImg.FileName.LastIndexOf( "\" ) + 1 );


frm.MdiParent =this;


frm.Show();


}

}
Messages postés
108
Date d'inscription
vendredi 11 juillet 2003
Statut
Membre
Dernière intervention
27 novembre 2007

Avant d'aller plus loin, revérifie si tu possèdes autant d'accolades
fermantes qu'ouvrantes car la disparition d'InitializeComponent(); +
bloc accolades dans constructeur : il s'agit vraisemblablement d'une
mauvaise manipulation qui peut avoir provoqué une réindentation
automatique.



Sinon, s'il n'y a pas d'erreur d'accolade, que fais-tu lors d'un redimensionnement...

(je m'absente jusqu'à ce soir, je ne vais donc pas pouvoir te répondre d'ici là)

-- AOGie --
Messages postés
86
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
2 avril 2008

Il n'y a pas d'erreur d'accolade.

En fait, le probleme suivant apparait :



Cas 1: l'image est plus petite que Form2.

L'erreur apparait directement, l'image ne s'affiche meme pas dans la Form2.



Cas 2: l'image est plus grande que la form2.

L'erreur apparait que si j'etire la form2 afin d'afficher les images sans scrollbars.

En fait, c'est quand les scrollbars sont sencées disparaitre que sa bug.



Donc j'ai quelques questions:

1) Est il possible d'afficher les scrollbars si il n'y a pas de picturebox? comme j'avais fais avant?

2) Si oui, je fais comment?

3) Si non, je regle le probleme ci dessus comment?
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
Voilà un exemple minimaliste pour te montrer comment utiliser une picture box.

using System;
using System.Drawing;
using System.Windows.Forms;


namespace Blasphemy // : )
{
public class MainForm : Form
{
private const string path = "Lena.jpg";
private PictureBox pb;


public MainForm( )
{
InitializeForm( );
}


protected override void Dispose( bool disposing )
{
try
{
if ( disposing )
{
// ...
}
}
finally
{
base.Dispose( disposing );
}
}


private void InitializeForm( )
{
this.SuspendLayout( );


pb = new PictureBox( );
pb.Location = new Point( 0, 0 );
pb.SizeMode = PictureBoxSizeMode.AutoSize;
pb.Image = new Bitmap( path );


this.Text = "Blasphemy";
this.Size = new Size( 400, 400 );
this.AutoScroll = true;
this.Controls.Add( pb );


this.ResumeLayout( false );
}


[ STAThread ]
private static void Main( )
{
Application.Run( new MainForm( ) );
}
}
}
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
57
Salut,
Si le but est seulement d'afficher des scrollbars dans le cas d'une pictureBox qui est trop petite, alors il te suffit d'aller sur cette page qui explique comment faire (tout sur MSDN !!!) : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwindowsformsscrollbarclassminimumtopic.asp
Je ne sais pas si ça correspond exactement à ton besoin, j'avais un peu la flegme de lire les cents milles postes de ce thread...

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever