这是我的班级:
public class CowTypeDefaults
{
public static void LactatingCow()
{
Form1 frm = new Form1();
{
frm.CowAgetxtBox.Enabled = true;
frm.CowWeighttxtBox.Enabled = true;
frm.DaysPregtxtBox.Enabled = true;
frm.BCStxtBox.Enabled = true;
frm.DaysInMilktxtBox.Enabled = true;
frm.LactationNumbertxtBox.Enabled = true;
frm.FirstCalftxtBox.Enabled = true;
frm.CalfInttxtBox.Enabled = true;
frm.ADGpanel.Visible = false;
frm.CalfVarGroupBox.Enabled = false;
}
}
}
我想回忆一下我的表格中的lactatingCow(),这是我记得的:
private void CowTypeSelect_SelectedIndexChanged(object sender, EventArgs e)
{
if (CowTypeSelect.SelectedIndex == 0)
{
CowTypeDefaults.LactatingCow();
}
}
它显示没有错误,程序运行但代码不起作用,我的文本框仍然被禁用。
我不知道如何修复它,非常感谢你回答。
答案 0 :(得分:1)
因为您要在静态方法中重新启动python setup.py -e '/usr/bin/env python' sdist upload
,所以每次调用Form1 frm = new Form1();
都会有所不同。由于此文件是一个单独的类,因此更好的选择是传递对象。所以方法签名就像:
frm
按钮点击将是:
public static void LactatingCow(Form1 frm)
{
frm.CowAgetxtBox.Enabled = true;
frm.CowWeighttxtBox.Enabled = true;
frm.DaysPregtxtBox.Enabled = true;
frm.BCStxtBox.Enabled = true;
frm.DaysInMilktxtBox.Enabled = true;
frm.LactationNumbertxtBox.Enabled = true;
frm.FirstCalftxtBox.Enabled = true;
frm.CalfInttxtBox.Enabled = true;
frm.ADGpanel.Visible = false;
frm.CalfVarGroupBox.Enabled = false;
}
答案 1 :(得分:0)
您每次都在创建Form1
的新实例。将表单的实例作为参考传递给您方法:
public static void LactatingCow(Form1 form)
{
form.CowAgetxtBox.Enabled = true;
form.CowWeighttxtBox.Enabled = true;
form.DaysPregtxtBox.Enabled = true;
form.BCStxtBox.Enabled = true;
form.DaysInMilktxtBox.Enabled = true;
form.LactationNumbertxtBox.Enabled = true;
form.FirstCalftxtBox.Enabled = true;
form.CalfInttxtBox.Enabled = true;
form.ADGpanel.Visible = false;
form.CalfVarGroupBox.Enabled = false;
}
并使用this
调用它:
private void CowTypeSelect_SelectedIndexChanged(object sender, EventArgs e)
{
if (CowTypeSelect.SelectedIndex == 0)
CowTypeDefaults.LactatingCow(this);
}
答案 2 :(得分:0)
我认为定义一个代表可以解决你的问题。 根据您的目标方法定义委托,并在类Form中声明该委托的公共变量,将其命名为Degegate temporary。当Form frm = new Form();使用frm.Delegate接收目标方法,然后在您需要的类Form Form事件中执行该委托varable。我在mobelphone上回答你的问题,所以我无法改变代码风格,抱歉