winform 里面有两个DLL相互引用时出现将此项目作为引用将导致循环依赖项
A.DLL已经引用了B.dll,
如果b.dll再引用A.DLL就会出现“将此项目作为引用将导致循环依赖项”,
但我B.DLL要读取A。DLL里面的一个窗体的控件属性,怎么办?如果B。DLL不引用A。DLL就读取不到所对应控件的属性
A.DLL已经引用了B.dll,
如果b.dll再引用A.DLL就会出现“将此项目作为引用将导致循环依赖项”,
但我B.DLL要读取A。DLL里面的一个窗体的控件属性,怎么办?如果B。DLL不引用A。DLL就读取不到所对应控件的属性
所以在菜单打开其它窗体的时候必须要引用其它的几个DLL,
但其它的DLL想得到A。DLL中MDI主窗体某个控件的属性[MDI主窗体的控件是动态增加的,就是打开一个窗体,增加一个TABPAGE,让其它窗体在TABPAGE里面],现在要去某个DLL窗口下去得到主窗体的TABPAGE属性就不行了 Order.Order order = new Order.Order();
if (OpenOnce(order) == true)
ShowWindow(order); bool OpenOnce(Form frm)
{
if (tabControl1.TabPages.IndexOfKey(frm.ToString()) == -1)
{ tabControl1.TabPages.Add(frm.Name,frm.Text);
tabControl1.SelectedIndex = tabControl1.TabCount - 1;
frm.TopLevel = false;
frm.Parent = tabControl1.TabPages[tabControl1.TabCount - 1];
frm.Dock = System.Windows.Forms.DockStyle.Fill;
return true;
}
else
{
tabControl1.SelectedIndex = tabControl1.TabPages.IndexOfKey(frm.ToString());
return false;
}
}
private void ShowWindow(Form tt)
{
tt.Show();
}
如果可以,试着在类库B中用两个命名空间,
这样, 就可以在B.1命名空间中引用类库A,在类库A中引用B.2命名空间.