我有一个datacontrol.cs(UserControl),它包含textbox1和codebehind窗口,其中包含一个参数为currentvalue的方法
public void bindvalue(float currentvalue)
{
textbox1.Clear();
textbox1.Text = currentvalue.ToString();
}
我有一个表单,这里添加了这个表单中的usercontrol,其中包含一个Button
因此,当点击按钮时,它会通过方法的方式将当前值传递给datacontrol类。
private void button_click(object sender, EventArgs e)
{
float currentvalue = 1500.00f;
datacontrol obj = new datacontrol();
obj.bindvalue(currentvalue);
}
一切对我来说都很好。它将当前值传递给usercontrol类,并将当前值分配/添加到textbox1.Text = currentvalue.ToString();
。它没有显示任何错误。但最后文本框没有显示任何值。
我使用断点来检查功能。它为文本框提供了当前值。但奇怪!!! .. 我无法预测代码中的错误。 帮助赞赏。:)
答案 0 :(得分:3)
您需要将datacontrol
的实例添加到表单
datacontrol obj = new datacontrol();
obj.bindvalue(currentvalue);
Controls.Add(obj);
答案 1 :(得分:3)
您的表单上不存在具有所需值(1500.00f)的datacontrol
实例。你只是在贬低它,传递价值而忘记它。
如果您已将用户控件添加到表单并想要调用现有控件的bindvalue
方法,则应执行以下操作:
private void button_click(object sender, EventArgs e)
{
float currentvalue = 1500.00f;
this.dataControl1.bindvalue(currentvalue);
}
请注意,dataControl1
是表单上用户控件的名称,可能与dataControl1
不同。
如果要创建新的用户控件并调用bindvalue
,则应在表单上添加新实例:
private void button_click(object sender, EventArgs e)
{
float currentvalue = 1500.00f;
datacontrol obj = new datacontrol();
obj.bindvalue(currentvalue);
this.Controls.Add(obj);
}
如果它已经在表单上动态添加了控件,则声明Form类的一个字段,在需要时分配它的新控件实例,并按照第一个示例中所示调用它。
答案 2 :(得分:0)
您可以通过在按钮单击事件处理程序中使用用户控件的tagename来调用bindvalue方法。 假设标签名称是' datacontrol',那么您应该使用以下代码行来完成您的任务:
protected void Button1_Click(object sender, EventArgs e)
{
float myvalue = 150.50f;
datacontrol1.BindValue(myvalue);
}
此致,Aamir(.Net开发人员)
如果它解决了所寻找的问题,请将此主题标记为答案...谢谢