Eğer UC_1'de tanımladığınız addRow() metodunu UC_2'den çağırmak istiyorsanız, UC_2 sınıfının içerisinde UC_1 sınıfından bir nesne oluşturmanız ve bu nesnenin addRow() metodunu çağırmanız gerekir. Örneğin, UC_2 sınıfının içerisinde bir UC_1 nesnesi oluşturup btnBaslat_Click olayı içerisinde bu nesnenin addRow() metodunu çağırıyorsunuz. Bu şekilde çalışır olması gerekir. Ancak eğer hala çalışmıyorsa, UC_1 sınıfının DGV nesnesinin tanımlanmış ve doğru bir şekilde atanmış olduğundan emin olun. Ayrıca, UC_2 sınıfının içerisinde oluşturduğunuz UC_1 nesnesinin addRow() metodunun çağrılmasına izin verilip verilmediğine de bakın.
Aşağıda UC_1 ve UC_2 sınıflarının düzeltilmiş versiyonlarını görebilirsiniz:
public partial class UC_1 : UserControl
{
public DataGridView DGV { get; set; }
public UC_1()
{
InitializeComponent();
}
public void addRow()
{
DGV.Rows.Add("test1","test2");
}
}
public partial class UC_2 : UserControl
{
public UC_1 _instance;
public UC_2()
{
InitializeComponent();
_instance = new UC_1();
}
private void btnBaslat_Click(object sender, EventArgs e)
{
_instance.addRow();
}
}UC_1 sınıfında DGV nesnenin tanımlanması ve başlangıç değerlerinin atanması için constructor kullanılmıştır. Ayrıca, addRow() metodunda DGV nesnesinin kullanılması için get/set metodları kullanılmıştır. UC_2 sınıfında ise, constructor içerisinde UC_1 nesnesi oluşturulmuş ve btnBaslat_Click olayı içerisinde bu nesnenin addRow() metodu çağrılmıştır. Bu şekilde çalışması gerekir.