首页 > 解决方案 > C#从Listview控件类访问父窗体的文本框

问题描述

我创建了自定义 Listview,并且为了使用,我需要访问 Listview 所在表单上的文本框。目前我在我的 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 类中需要它的任何地方。什么是最简单或最优雅的解决方案?提前感谢您的帮助!

标签: c#

解决方案


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

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

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

替代使用属性:

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

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


推荐阅读