永发信息网

winform中用户控件传值给窗体。

答案:3  悬赏:0  手机版
解决时间 2021-02-15 02:09
双击用户控件中一个文本框,弹出一个窗体。并把这个文本框中的值传给窗体。思想都有,就是实现不了。所以麻烦不要只说个怎么做,给个大概代码让我试试吧。
下面是我用的一个方法,不行。但这方法在把窗体中值传到控件中就OK。检查了也没问题。网上也找不到合适的。
窗体BCwin中代码:
public delegate string cd_names();
private void BCwin_Load(object sender, EventArgs e)
{
UCdept dept = new UCdept();
cd_names depts = dept.setTxtDept_cd;
IDataParameter[] parameters = new SqlParameter[1];

parameters[0] = new SqlParameter("@dept_cd", SqlDbType.VarChar, 10);

parameters[0].Value = depts();
DataSet ds = DbHelperSQL.RunProcedure("[PROC_BC010TB_OPEN]", parameters, "hr010tb", 120);
GvData.DataSource = ds.Tables[0];
}
控件UCdept中代码:
//部门代码
public string setTxtDept_cd()
{
return cds;
}
string cds = "";
#region 双击部门代码文本框
private void txtDept_cd_DoubleClick(object sender, EventArgs e)
{
BCwin frm = new BCwin();
cds = txtDept_cd.Text; //这边本来是有值的,但居然执行了两次,第二次就没值了。
frm.ShowDialog();
}
#endregion
如果给的方法Ok的话,会再加10分滴。麻烦了!!!
最佳答案
窗体BCwin中代码:
public delegate string cd_names();
private string cds = "";
public string CDS
{
get(return cds;)
set(cds = value;)
}
private void BCwin_Load(object sender, EventArgs e)
{
UCdept dept = new UCdept();
cd_names depts = cds;
IDataParameter[] parameters = new SqlParameter[1];

parameters[0] = new SqlParameter("@dept_cd", SqlDbType.VarChar, 10);

parameters[0].Value = depts();
DataSet ds = DbHelperSQL.RunProcedure("[PROC_BC010TB_OPEN]", parameters, "hr010tb", 120);
GvData.DataSource = ds.Tables[0];
}

控件UCdept中代码:
//部门代码

#region 双击部门代码文本框
private void txtDept_cd_DoubleClick(object sender, EventArgs e)
{
BCwin frm = new BCwin();
frm.CDS = txtDept_cd.Text; //这边本来是有值的,但居然执行了两次,第二次就没值了。
frm.ShowDialog();
}
#endregion

如果看不懂可以追问,我给你解释。手写的,可能会有微小的编译错误,如果自己解决不了也可以追问。
全部回答
楼下的不行吗
usercontrol 的话。应该没问题吧。开放个MyValue的属性 控件里面写 privat virtual string MyValue public string MyValue { get{return MyValue;}; set{return MyValue=value;} } 然后在doubleclick中写 form.show(); ------------------------ form里的load方法是可以添加参数的。比如 protected void Form1_Load(object sender, EventArgs e,string val) { textbox1.text = val; } 记得这么写是可以的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
五六年的网友经常聊天会产生有感情吗
西安锦江物业服务有限公司荣民国际大厦管理处
2012评定职称送多少钱才能满足评委要求?
茶香府(舞光路)地址在什么地方,我要处理点事
荆州市钜鑫投资咨询有限公司地址在什么地方,
茶韵阁(北京路)地址在什么地方,想过去办事
银行对于信用卡客户的透支取现及过了免息期的
机械师2复活百度云链接
我们是住在一个小县城的小镇上,奶奶家有很多
急!!!!!郑州 从大学路到南三环佛冈新居
品惠便民商店地址有知道的么?有点事想过去
有一种塑料的绳子,条型的,十几厘米,绳子上
我想要买情趣用品,女用的,不知道哪种用起来
烧水的最快方法、有没有高手
悦ban地址好找么,我有些事要过去
推荐资讯
淘宝上的快速学历提升是什么意思
200安快速熔断器它的熔断电流是多少安培
高观镇在什么地方啊,我要过去处理事情
农业银行卡丢了,现在想找回卡号,又不想去银
情人变成朋友后关系很好能合好吗
万顺和棋牌地址在什么地方,想过去办事
雪佛兰科鲁兹好还是日产轩逸好?
江苏淮安古代有什么名人?
怎么练跳高
方正县建设局城乡规划建设办公室地址在哪,我
一个由n条肽链组成的蛋白质共有m个氨基酸,该
只有一个仓库卖饮料的三证怎么办啊
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?