|
|
|
The General Winforms Interview Questions consists the most frequently
asked questions in Winforms. This list of 100+ questions guage your familiarity
with the Winforms platform. The q&a have been collected over a period
of time from various blogs, forums and other similar Winforms sites
|
29.Windows Forms PictureBox
|
| 29.1 How can I
place a border around a PictureBox?
|
| 29.2 How can I copy
a bitmap from the clipboard to a PictureBox?
|
| 29.3 How can I copy
and paste images/graphs etc from MS Office to a PictureBox?
|
29.1 How can I place a border around a PictureBox?
|
|
One solution is to use a panel that has a picturebox placed on it with
DockStyle.Fill. This will make the picturebox assume the size of the panel. In
addition, set the DockPadding.All property to the width of the desired border.
Then in the Panel's OnPaint method, call the baseclass and then paint the
desired borders.
The derived PicturePanel class has properties that allow you to set the
bordersize and color as well as the image that is to be displayed. This sample
retrieves the image from an embedded resource. It also uses double buffering to
minimize flashing as you resize the control.
|
29.2 How can I copy a bitmap from the clipboard to a PictureBox?
|
|
This code snippet shows how you can set your PictureBox's image to be the image
from the clipboard:
|
|
[C#] this.pictureBox1.Image =
(Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap); [VB.Net]
Me.pictureBox1.Image =
CType(Clipboard.GetDataObject().GetData(DataFormats.Bitmap), Bitmap)
|
29.3 How can I copy and paste images/graphs etc from MS Office to a PictureBox?
|
|
How can I copy and paste images/graphs etc from MS Office to a PictureBox?
|
|
[C#]
using System.Runtime.InteropServices;
using System.Reflection;
public const uint CF_METAFILEPICT = 3;
public const uint CF_ENHMETAFILE = 14;
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
public static extern bool OpenClipboard(IntPtr hWndNewOwner);
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
public static extern bool CloseClipboard();
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
public static extern IntPtr GetClipboardData(uint format);
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
public static extern bool IsClipboardFormatAvailable(uint format);
//Pasting into PictureBox
if (OpenClipboard(this.Handle))
{
if (IsClipboardFormatAvailable(CF_ENHMETAFILE))
{
IntPtr ptr = GetClipboardData(CF_ENHMETAFILE);
if (!ptr.Equals(new IntPtr(0)))
{
Metafile metafile = new Metafile(ptr,true);
//Set the Image Property of PictureBox
this.pictureBox1.Image = metafile;
}
}
CloseClipboard();
}
|