什么事件执行后控件的属性被设置?然后还会激发那些事件?

RenSenKoori 2010-12-02 03:14:43
做了一个自定义控件,想根据控件的属性设置一些属性
现在的问题是,我要在这个控件的属性被设置后,我需要根据这些属性,进行一些设置

刚开始写在了控件的构造方法了,可是构造方法执行时,控件的属性还没有从designer里读取

现在想找个合适的事件写进去,说以想问下什么事件执行后控件的属性被设置?
然后还会激发那些事件,这样可以事件中做我的设置了。
...全文
113 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Teng_s2000 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zenghd 的回复:]
引用 6 楼 sp1234 的回复:

我看了一下msdn上的说明:
http://msdn.microsoft.com/zh-cn/library/system.componentmodel.inotifypropertychanged.aspx

其实不仅仅是“向客户端”,控件自己也需要监听自己的属性改变,这样编程就更简练,因为你可以在初始化方法中一次性地、集中地注册事件方法,而不需……
[/Quote]
SP1234给写个Demo学学吧哈哈
ZengHD 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sp1234 的回复:]

我看了一下msdn上的说明:
http://msdn.microsoft.com/zh-cn/library/system.componentmodel.inotifypropertychanged.aspx

其实不仅仅是“向客户端”,控件自己也需要监听自己的属性改变,这样编程就更简练,因为你可以在初始化方法中一次性地、集中地注册事件方法,而不需要分不到每一个属性的set方法中去写业务处……
[/Quote]

给点代码学习学习

saybookcat 2010-12-03
  • 打赏
  • 举报
回复
designer.loader+=(s,e)=>
{
//做的事情
}
不知道有这个事件没
  • 打赏
  • 举报
回复
我看了一下msdn上的说明:
http://msdn.microsoft.com/zh-cn/library/system.componentmodel.inotifypropertychanged.aspx

其实不仅仅是“向客户端”,控件自己也需要监听自己的属性改变,这样编程就更简练,因为你可以在初始化方法中一次性地、集中地注册事件方法,而不需要分不到每一个属性的set方法中去写业务处理代码。
  • 打赏
  • 举报
回复
在silverlight中,出现了新的机制,叫做 DependencyProperty。如果你学silverlight开发,就要在INotifyPropertyChanged、INotifyCollectionChanged之外还要充分掌握这个。
  • 打赏
  • 举报
回复
[Quote=引用楼主 rensenkoori 的回复:]
做了一个自定义控件,想根据控件的属性设置一些属性
现在的问题是,我要在这个控件的属性被设置后,我需要根据这些属性,进行一些设置

刚开始写在了控件的构造方法了,可是构造方法执行时,控件的属性还没有从designer里读取

现在想找个合适的事件写进去,说以想问下什么事件执行后控件的属性被设置?
然后还会激发那些事件,这样可以事件中做我的设置了。
[/Quote]

这是有“模式”的。典型的代表,叫做 INotifyPropertyChanged。自己google一下。

程序员如果不知道,那么肯定没有经过正规.net技术原理方面的培训。
ZengHD 2010-12-03
  • 打赏
  • 举报
回复
你想要什么样的呢?
RenSenKoori 2010-12-03
  • 打赏
  • 举报
回复
没找到想要的。。。。。。。
ZengHD 2010-12-02
  • 打赏
  • 举报
回复
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
MyTexBox myTextBox = new MyTexBox();
this.Controls.Add(myTextBox);
myTextBox.MyTextChanged += new MyTexBox.MyTextChangedHandler(MyTextChanged);
myTextBox.MyText = "sfsf";
}

private void MyTextChanged(string strText)
{
MessageBox.Show(strText);
}
}

public class MyTexBox : TextBox
{
public delegate void MyTextChangedHandler(string strText);
public event MyTextChangedHandler MyTextChanged;

private string _MyText;
public string MyText
{

get { return _MyText; }
set
{
_MyText = value;
if (MyTextChanged != null)
{
MyTextChanged(_MyText);
}
}
}
}
}

110,545

社区成员

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

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

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