设置控件父容器异常,求高手解释

meic1985 2011-06-16 11:00:19
PDA winform开发。在一个窗体上有一个PictureBox 一个 Label
执行如下代码的时候异常,求高手解释。

this.label1.Parent = this.pictureBox1;

异常信息:
((System.Windows.Forms.Control)(this.label1)).Parent”引发了“System.ArgumentException”类型的异常 System.Windows.Forms.Control {System.ArgumentException}
...全文
92 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuexiaodong2009 2011-06-16
  • 打赏
  • 举报
回复
this.label1.Parent = this.pictureBox1;

能这样赋值吗
xuexiaodong2009 2011-06-16
  • 打赏
  • 举报
回复

this.label1.Parent 是 pictureBox1吗
meic1985 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liuzhc 的回复:]
未发现异常,应该是别的原因引起的,或者PDA不支持,或者pictureBox1没有初始化等等。
[/Quote]
PDA 是 windows mobile 5.0的系统
拿凤姐抵债 2011-06-16
  • 打赏
  • 举报
回复
未发现异常,应该是别的原因引起的,或者PDA不支持,或者pictureBox1没有初始化等等。
meic1985 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liuqian4243 的回复:]
控件赋值类型不对照,不能如此操作了.

pictureBox1不是System.Windows.Forms.Control,


引发System.ArgumentException”类型的异常
[/Quote]

刚去看了一下 PictureBox是Control的

namespace System.Windows.Forms
{
// 摘要:
// 表示用于显示图像的 Windows 图片框控件。
public class PictureBox : Control
{
// 摘要:
// 初始化 System.Windows.Forms.PictureBox 类的新实例。
public PictureBox();

// 摘要:
// 获取或设置由 System.Windows.Forms.PictureBox 显示的图像。
//
// 返回结果:
// 要显示的 System.Drawing.Image。
public Image Image { get; set; }
//
// 摘要:
// 指示如何显示图像。
//
// 返回结果:
// System.Windows.Forms.PictureBoxSizeMode 值之一。默认为 System.Windows.Forms.PictureBoxSizeMode.Normal。
//
// 异常:
// System.ComponentModel.InvalidEnumArgumentException:
// 分配的值不是 System.Windows.Forms.PictureBoxSizeMode 值之一。
public PictureBoxSizeMode SizeMode { get; set; }

//
// 参数:
// e:
// 包含事件数据的 System.Windows.Forms.PaintEventArgs。
protected override void OnPaint(PaintEventArgs e);
protected override void OnPaintBackground(PaintEventArgs e);
//
// 摘要:
// 引发 System.Windows.Forms.Control.Resize 事件。
//
// 参数:
// e:
// 包含事件数据的 System.EventArgs。
protected override void OnResize(EventArgs eventg);
}
}
Ny-6000 2011-06-16
  • 打赏
  • 举报
回复
控件赋值类型不对照,不能如此操作了.

pictureBox1不是System.Windows.Forms.Control,


引发System.ArgumentException”类型的异常
meic1985 2011-06-16
  • 打赏
  • 举报
回复
看了一下 mobile系统下 PictureBox的定义如下:PictureBox : Control
而xp下为:PictureBox : Control, ISupportInitialize
多继承了一个接口,
public interface ISupportInitialize
{
// 用信号通知对象初始化即将开始。
void BeginInit();
// 用信号通知对象初始化已完成。
void EndInit();
}

应该是这个原因了。
meic1985 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xuexiaodong2009 的回复:]
this.label1.Parent = this.pictureBox1;

能这样赋值吗
[/Quote]

在windows xp或者 windows7上这句话没有问题的。只不过出来的效果是看不见这个 Label
只不过在windows mobile下就有异常

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧