作者TeemingVoid (TeemingVoid)
看板C_Sharp
标题Re: [问题] winform切换後picturebox消失的问题
时间Wed Jan 18 21:14:01 2012
※ 引述《wandallin (万大林)》之铭言:
: 目前是要实做一个功能
: 就是按下按钮後会跳出视窗, 把图片放大到全画面
: 程式大概是这样
: Form1
: ShowPic ShowPicWindow = new ShowPic();
: ShowPicWindow.pb14 = pictureBox14;
: ShowPicWindow.ShowDialog();
: Form2
: public PictureBox pb14;
: this.Controls.Add(pb14);
: 可是这样在Form1的picturebox会消失不见
: 这是什麽原因呢~"~???
根据 MSDN 对於 Control.ControlCollection.Add Method 的说明,
其中的 Note 提到:
A Control can only be assigned to one Control.ControlCollection at a time.
If the Control is already a child of another control it is removed from
that control before it is added to another control.
也就是说,控制项同一时间只能从属於一个 Controls 集合物件,在您加入
Form1 的控制项到 Form2 的 Controls 时,该物件的 reference 会自动从
Form1 的 Controls 中移除。
一段小实验:
1. 新增一个专案,在 Form1 上放置 PictureBox, GroupBox 与 Button 各一。
2. 指定 PictureBox 的 Image,随便选一张图片。
3. Button1's 的 Click 事件处理程序:
groupBox1.Controls.Add(pictureBox1);
4. 程式执行时,点一下按钮,图片会「变」到 GroupBox 中。
《解法》
Button1's 的 Click 事件处理程序:
PictureBox pb = new PictureBox();
pb.Image = pictureBox1.Image;
groupBox1.Controls.Add(pb);
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.41.99.30