Domanda

A volte, ho un picturebox diciamo 100x100. Ma l'immagine che verrà visualizzata in realtà è 100x400.

Non voglio aumentare le dimensioni del picturebox stesso. Invece, mi piacerebbe creare una barra di scorrimento verticale (o orizzontale se necessario).

non ho potuto trovare una barra di scorrimento nella casella degli strumenti, quindi credo che devo codice di esso. Ma come? E mi chiedo ancora se non ho fatto un errore e non ho visto la barra di scorrimento nella casella degli strumenti. Le mie scuse quindi: (

È stato utile?

Soluzione

I supporti potrebbero aggiungere controlli ScrollBar separati e sincronizzare i loro eventi Scroll con l'offset in cui l'immagine nel PictureBox è tratto, ma che suona come lavoro effettivo. C'è un modo migliore.

  1. Aggiungi un controllo Panel al modulo, e impostare il AutoScroll proprietà su 'true'. Questo farà sì che il controllo di mostrare automaticamente le barre di scorrimento quando contiene il contenuto che si trova al di fuori dei suoi confini visibili attualmente. Il .NET Framework si prenderà cura di tutto per voi sotto le coperte, senza dover scrivere una sola riga di codice.

  2. Trascinare vostro interno di controllo PictureBox del controllo Panel appena aggiunto. Il controllo Panel poi rilevare che uno dei suoi controlli figlio è più grande la sua area e mostrare visibili le barre di scorrimento , grazie alla proprietà AutoScroll. Quando l'utente sposta le barre di scorrimento, la porzione di immagine nel vostro PictureBox che è visibile viene regolato automaticamente. Magia.

(La ragione per cui è necessario utilizzare un controllo Panel come contenitore è perché PictureBox non eredita direttamente dal ScrollableControl classe di base, che è ciò che fornisce la proprietà AutoScroll.)

Altri suggerimenti

Ho provato questo e ha funzionato bene. Ma ho notato che se il picturebox è inserito nel pannello, il picturebox viene impostato automaticamente alle dimensioni del pannello genitore, e non può essere impostata più grande (almeno non in alcun modo ho potuto trovare). Ciò contrasta con l'obiettivo della tecnica. Così -. Mettere il picturebox sul pannello, ma non ancorarla, e funzionerà perfettamente

Non ci sono barre di scorrimento automatico su una finestra di immagine, ma è possibile aggiungere il VScrollBar (e HScrollBar) controllo al form e gestire l'immagine di scorrimento manualmente ridisegnando in un secondo diverso di offset ogni volta che l'evento di scorrimento è sparato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top