c# - 如何从另一个表单刷新文本框?C#
问题描述
我正在尝试使用以下代码从另一个表单更新文本框:
private void Button2_Click(object sender, EventArgs e)
{
Variables.revenu += Variables.LAIR * 30;
Cartel_Form.Textbox_Revenu.Text = Variables.revenu.ToString();
}
但我得到这个错误:
非静态字段、方法或属性“Cartel.Form.Textbox_Revenu”需要对象引用
这是第一种形式的文本框的内容:
Textbox_Revenu.Text = Variables.revenu.ToString();
在同一种形式中,我可以刷新/修改文本框,但不能以另一种形式。文本框修饰符设置为公共。
解决方案
这是一个使用事件的示例,其中子窗体包含事件,而主窗体侦听这些事件。两种形式都有一个 TextBox 和一个 NumericUpDown 控件。或者正如@jimi 提到的使用绑定。
主要形式
using System;
using System.Windows.Forms;
namespace PassingDataBetweenFormsSimple
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void ShowChildButton_Click(object sender, EventArgs e)
{
ChildForm childForm = new ChildForm();
childForm.PassingData += ChildFormOnPassingData;
childForm.PassingNumber += ChildFormOnPassingNumber;
try
{
childForm.ShowDialog();
}
finally
{
childForm.Dispose();
}
}
private void ChildFormOnPassingNumber(int value)
{
numericUpDown1.Value = numericUpDown1.Value + value;
}
private void ChildFormOnPassingData(string text)
{
FirstNameTextBox.Text = string.IsNullOrWhiteSpace(text) ?
"(empty)" :
text;
}
}
}
子窗体
using System;
using System.Windows.Forms;
namespace PassingDataBetweenFormsSimple
{
public partial class ChildForm : Form
{
public delegate void OnPassingText(string text);
public event OnPassingText PassingData;
public delegate void OnPassingNumber(int value);
public event OnPassingNumber PassingNumber;
public ChildForm()
{
InitializeComponent();
}
private void PassDataButton_Click(object sender, EventArgs e)
{
PassingData?.Invoke(FirstNameTextBox.Text);
PassingNumber?.Invoke((int)numericUpDown1.Value);
}
}
}
推荐阅读
- c# - C# Socket 构造函数参数无效
- r - r sankeyNetwork 突出显示节点的所有连接路径
- r - 如何在ggplot2中混合aes_()和算术计算?
- android - Android项目如何使用/合并多个AndroidManifest.xml
- memory - 在 Windows 操作系统上运行的 Couch DB 正在分页,而它有足够的可用 RAM
- java - 通知未显示所有操作按钮
- javascript - 不能使用“Observable.Of(value)”
- java - 如何使用java在Repository Springboot中执行将由某个符号分隔的查询
- android - 在 Oreo 上也每 10 秒休眠和唤醒前台有界 IntentService
- php - php - 替代数组中的“if”语句