日期:2014-05-18  浏览次数:21055 次

WinForm 动态添加用户控件及控件与父窗体值传递问题......急~~
winForm问题:  
  "用户控件"是动态加载的,但是这个"用户控件"要改变包含它的窗体中的一个文本框的文本,怎么做呢?  
  请大哥们帮帮小弟!

有人说用委托,但不知道怎么做?能有例子吗?

---------------
   
switch (UC_name)
  {
  case "TestControl":

  TestControl tc = new TestControl();
  tc.Parent = this.MAINUC_panel;
  tc.Size = this.MAINUC_panel.Size;
  tc.Show();
  break;
  case "TEST2":

  TEST2 t2 = new TEST2();
  t2.Parent = this.MAINUC_panel;
  t2.Size = this.MAINUC_panel.Size;
  t2.Show();
  break;
  }
在TEST2用户控件中有一个按钮,要注是一按按钮,主窗体中的一个Lable值就改变....

------解决方案--------------------
private bool _isNecessary = false;
/// <summary>
/// 是否必输项属性设定
/// </summary>
public bool IsNecessary
{
get { return _isNecessary; }
set {
//if (_isNecessary != value)
//{
_isNecessary = value;
OnNecessaryChanged();
//}
}

//声明委托
public delegate void ChangedEventHandler();
//声明NecessaryChanged事件
public event ChangedEventHandler NecessaryChanged;
//委托事件的虚方法
protected virtual void OnNecessaryChanged()
{
if (NecessaryChanged != null)
NecessaryChanged();
}
 #region NecessaryChanged事件
void DETextBox_NecessaryChanged()
{
necessaryColor();
}
#endregion