C#从Listview控件类访问父窗体的文本框

时间:2018-04-26 07:40:21

标签: c#

我创建了自定义Listview,并且对于用法,我需要在Listview所在的同一个Form上访问Textbox。目前我在Listview代码中随处可见的是:

 Form frm = FindForm();
 var text_ctl = frm.Controls.Find("Textbox1", true).FirstOrDefault() as Control;
 TextBox Txt = (TextBox)text_ctl;

  ...
  Txt.Text="Test";

但是我不是一遍又一遍地重复相同的代码,而是只想做一次,比如在OnCreateControl()中,并将该引用传递给我在Listview类中需要它的所有地方。什么是最简单或最优雅的解决方案?提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我太复杂了,这就是我所做的:

  private TextBox _Txt;
  public void GetTxt(TextBox ref_txt)
        {
            _Txt = ref_txt;
        }

我在Form加载后运行 GetTxt(),然后listview类引用它。

替代使用属性:

 private TextBox _Txt;
 public TextBox GetTxt
 {
    get { return _Txt; }
    set { _Txt = value; }
 }

感谢您的帮助,特别是Sandeep。抱歉给您带来任何不便,我有点困惑......