![](/img/trans.png)
[英]Taking the selected value CardNumber a combo box on form1 to form2
[英]How to disable form2 combo boxes based on form1 combo box value?
我試圖基於窗體1選定值禁用窗體2中的某些組合框。
假設在Form1中,如果comboxbox值為0,則禁用表單2中的某些組合框
我在form1中所做的
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public ComboBox combo
{
get { return dropdown; }
}
到目前為止,在表格2中
private void Form2_Load(object sender, EventArgs e)
{
Form1 f = new Form1();
if (f.combo.SelectedIndex == 0)
{
comboBox1.Enabled = false;
}
這是行不通的,我無法解決(C#新手)
如果使用以下語法在Form上創建Form1:
Form1 f = new Form1();
您將獲得Form1的新實例(或“副本”),而不是已經打開的實例。 您需要將Form1的引用傳遞給Form2。
將此代碼放入Form2中:
private Form1 myParentForm;
public Form2(Form1 parentForm)
{
myParentForm = parentForm;
}
然后,您可以通過變量myParentForm使用Form1。 像這樣:
private void Form2_Load(object sender, EventArgs e)
{
if (myParentForm.combo.SelectedIndex == 0)
{
comboBox1.Enabled = false;
}
}
在Form1中,您有如下代碼:
Form2 mySecondForm = new Form2();
更改為:
Form2 mySecondForm = new Form2(this);
這是一個先前的答案,其中有多個樣本將一種形式稱為另一種形式的參數,包括其中一種形式的完整分步樣本。
現在,關於啟用/禁用,您可以使用屬性或方法方法來告訴“其他”表單啟用/禁用狀態。這些示例只是在設置/獲取值。 如果您將一個布爾值之類的集合設置為所討論的形式,則您的setter部分可能類似於
private bool enableFromOtherForm;
public bool EnableFromOtherForm
{
get { return enableFromOtherForm; }
set { this.controlToChange.IsEnabled = value; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.