我正在为一所学校的项目工作,并且有一些逻辑错误。 我有两种不同的形式:frmOrders和frmCustomers。 frmOrders是主要形式,当我点击这里的按钮时,frmCustomers将显示。 frmCustomers中有一个名为txtTable的数据网格。
现在,我要做的是当我双击一行时,某些信息会出现在frmOrders的某些文本框中,然后frmCustomers关闭。此外,我希望禁用frmCustomers中的其余控件。 (我已经将frmCustomers中控件的访问修饰符设置为公共,但它似乎无法正常工作。)我该怎么做?
目前这是我的代码:
public partial class frmOrders : Office2007Form
{
public frmOrders()
{
InitializeComponent();
}
private void frmOrders_Load(object sender, EventArgs e)
{
}
private void btnCustomer_Click(object sender, EventArgs e)
{
frmCustomers c = new frmCustomers();
c.ShowDialog();
c.txtAddress.Enabled = false;
c.txtBday.Enabled = false;
c.txtContactNo.Enabled = false;
c.txtFname.Enabled = false;
c.txtLname.Enabled = false;
c.txtMI.Enabled = false;
c.txtSearch.Enabled = false;
c.btnDelete.Enabled = false;
c.btnSave.Enabled = false;
c.btnUpdate.Enabled = false;
}
}
答案 0 :(得分:0)
我猜您的按钮,文本字段等是frmCustomers表单代码(frmCustomers.Designer.cs)中的私有字段,因此无法从其他表单访问它们。您可以将控件公开(我不建议),也可以在表单(frmCustomers)中添加公共方法来设置属性,并可以从frmOrders访问。
例如(在你的frmCustomers代码中):
public void SetControlsEnabled()
{
txtAddress.Enabled = false;
txtBday.Enabled = false;
txtContactNo.Enabled = false;
...
}
但只要您使用ShowDialog()
调用表单,下面的代码就不会执行,因为它等待表单关闭(并返回一个DialogResult)。
所以这样做
frmCustomers c = new frmCustomers();
c.SetControlsEnabled();
c.ShowDialog();
希望这有帮助!