使两个盒子相等
本文关键字:盒子 两个 | 更新日期: 2023-09-27 18:16:29
我试图使文本框(UPC_txtBox4
)自我填充等于UPC_txtBox2
的相同值。这两个文本框位于不同的表单上,但我觉得应该有一种方法将它们连接起来。
如果form1负责导航到form2,那么您可以使用类似于以下的URL从form1传递查询字符串上的值:
protected void Page_Load(object sender, EventArgs e)
{
if (this.IsPostBack)
{
Response.Redirect(Request.ApplicationPath + "/Form2.aspx?upc=" + UPC_txtBox2.Text, false);
}
}
then in form2 code:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
// Assuming this field is an asp.net textbox and not an HTML input
UPC_txtBox4.Text = Request.QueryString["upc"];
}
}
或者,您可以将值存储在会话状态中,假设您正在使用会话。
更正:鉴于您使用的是WebForms,而不是我所假设的WinForms,下面的内容无关紧要。
您应该在需要更新的表单上创建一个方法,然后将该表单的引用传递给新创建的表单。
这将不会工作,如果任何形式是一个对话框(据我所知)。
:
直接编辑文本框的表单。
private Form formToUpdate;
public void OpenForm(Form _formToUpdate)
{
formToUpdate = _formToUpdate;
txtBlah.TextChanged += new EventHandler(OnTextChanged);
this.Show();
}
private void OnTextChanged(object sender, EventArgs e)
{
formToUpdate.UpdateText(txtBlah.Text);
}
要动态更新的表单:
delegate void StringParameterDelegate (string value);
public void UpdateText(string textToUpdate)
{
if (InvokeRequired)
{
BeginInvoke(new StringParameterDelegate(UpdateText), new object[]{textToUpdate});
return;
}
// Must be on the UI thread if we've got this far
txtblah2.Text = textToUpdate;
}
注意:这是未经测试的(尽管它应该可以工作),并且大部分是伪代码,显然您需要根据您的解决方案对其进行调整。