winform 中的UserControl怎么和主窗体交互

UserControl 上有个文本框和按钮。主窗体上有个文本框、点UserControl上的按钮后把UserControl文本框中的数据传到主窗体的文本框中

  在窗体间传递数据的方法比较多:
  在子窗体中自定义一个构造函数,参数类型是主窗体,当要显示子窗体的时候,就用这个构造函数来实例化子窗体,然后把this指针传进去,说起来太抽象了,我大概一写大家应该就明白了:
  public class frmMain:Form { ... frmControl controlForm=new frmControl(this); controlForm.Show(); } public class frmControl:Form //子窗体,用来控制主窗体的某些显示! { private frmMain mainForm; public frmControl(frmMain mainForm) { this.mainForm=mainForm; } private void button1_Click(object sender,EventArgs e) { frmMain.textBox1.Text=this.textBox1.Text; //把子窗体的文本框值传递给主窗体的文本框! } }
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-24
直接传值
通过窗体构造函数调用 先要见一个私有变量
类似这样
private string str;
public frmMain(string str)
{
this.str = str;
InitializeComponent();
}追问

能有全部的代码么。传值不怎么会弄

追答

private void button1_Click(object sender, EventArgs e)

        {

            frmMain main = new frmMain();

            main.Show(label1.Text);

        }

追问

主窗体上就按照你上面的写么

追答

主窗体按之前的代码写,UserControl按后面的写就能传了

追问

不行啊。都是错的

追答

什么错误?

追问

追答

哦 lable1.Text要写在new Form1()里面

追问

这个地方怎么也报错了

追答

给他个“” 然后在主窗体里判断 接受过来的 数据是否为空 为空就不理他 有数据就执行你要的方法

本回答被提问者采纳

UserControl是什么,怎么用
UserControl ,顾名思义就是用户控件的意思,也可以理解为自定义控件。在VS的WinForm项目中你右键选择添加是有”用户控件“这一项的,在用户控件上面你可以在添加其他的控件和写代码,这样就可以完成一个你想要实现的效果。用户控件完成以后,你还要把它添加到工具箱中,然后你就可以像使用工具箱中的控件一...

C#Winform窗体如何打开用户控件
你想通过button1打开userControl1 那你可以在button1的Click事件里面写 var userControl=new userControl1();userControl.ShowDialog();

winform 用户控件A调用户控件B的方法(急)
在主窗体创建用户控件时.UserControl1 userControl = new UserControl1();userControl.OnGetMainFormDataList += new GetDataList(this.GetList);\/\/和主窗体的函数绑定 userControl.Show();

C# Winform自定义控件更改属性时如何通知父级窗口
\/\/窗体(Form1)里地方法 public void Response(string msg){ MessageBox.Show(msg);} \/\/自定义控件里的鼠标双击事件,UserControl1是直接放在窗体里的所以UserControl1的Parent是Form1 private void UserControl1_DoubleClick(object sender, EventArgs e){ ((Form1)this.Parent).Response(this.Name);}...

wpf usercontrol窗口怎么使用windowproc
在WPF中使用WindowProc,首先要获得一个HWND句柄(一个IntPtr类型),然后通过创建一个HwndSource对象,再通过调用这个对象中的AddHook方法来添加WindowProc。首先看看HwndSource ,msdn是这么写的:HwndSource 实现包含 WPF 内容的 Win32 窗口。 WPF 内容在此窗口中排列、度量、呈现,并且可交互式输入。Hwn...

C# winform 窗口中,加载了一个usercontrol,怎么重置。
这个问题有点水平,但也不难。我现在假设你自定义面板上只有Textbox和listbox两种控件(其他类似做法)private void button1_Click(object sender, EventArgs e){ try { foreach (Control control in this.Controls){ if (control is TextBox){ TextBox txt=control as TextBox ;if(txt!=null)txt...

winForm中获取UserControl的父容器的方法
public System.Windows.Forms.ComboBox comboBox1;Form1中订阅这三个事件都可以实现你想要的--- private void userControl11_Load(object sender, EventArgs e){ this.userControl11.comboBox1.SelectedValueChanged += new EventHandler(comboBox1_SelectedValueChanged);this.userControl11.comboBox1.Text...

...自定义控件(CustomControl),用户控件(userControl)的区别及继承方法...
窗体继承用usercontrol好些啊,customCcontrol主要是用来继承单独控件的,如combobox,datagrid这些的。customCcontrol修改控件外观的方式是可以访问控件本身template的里的控件,然后可以对其修改样式和增加逻辑。而楼主主要是想继承窗体,窗体是由N多个控件组成的。所以就应该用userControl。

C# UserControl
可以在form_load事件里把this传给usercontrol,然后在usercontrol里调用form的各种方法,不过这种做法不太好,耦合性较高。标准做法是用事件传递 usercontrol里加如下代码:public delegate void FormCloseEventHandler(object sender, EventArgs e);public event FormCloseEventHandler FormClose;private void ...

C# 做的winform窗体程序把一个Form给为自定义控件?
修改你的类,从继承自Form改为继承自UserControl 他就变成UserControl了

相似回答