检查 TableLayoutPanel 是否包含实例?
Check if TableLayoutPanel contains instance?
我想检查 TableLayoutPanels 是否已经包含 UserControl 的实例,但它不是这样工作的。 mainActiveContr != userControl 都是 AddEntryControl 的一个实例,所以它不应该是假的吗?这是真的 ...
包含似乎也 return 正确,但它不应该 return 错误吗??
private UserControl mainActiveContr;
private void IsUserControlAlreadyActive(UserControl userControl)
{
if (!tableLayoutPanel1.Contains(userControl) && mainActiveContr != userControl)
this.tableLayoutPanel1.Controls.Add(userControl, 3, 2);
}
如果有人点击按钮,我会创建一个 UserControl 实例,然后我想检查它。
AddEntryControl formChild1 = new AddEntryControl();
IsUserControlAlreadyActive(formChild1);
您应该检查用户控件的类型,因为每个实例都是唯一的:
using System.Linq;
...
if (!tableLayoutPanel1.Controls.OfType<UserControl>()
.Select(u => u.GetType())
.Any(t => t.Equals(userControl.GetType())))
并对 mainActiveContr
进行类似的检查。
我想检查 TableLayoutPanels 是否已经包含 UserControl 的实例,但它不是这样工作的。 mainActiveContr != userControl 都是 AddEntryControl 的一个实例,所以它不应该是假的吗?这是真的 ... 包含似乎也 return 正确,但它不应该 return 错误吗??
private UserControl mainActiveContr;
private void IsUserControlAlreadyActive(UserControl userControl)
{
if (!tableLayoutPanel1.Contains(userControl) && mainActiveContr != userControl)
this.tableLayoutPanel1.Controls.Add(userControl, 3, 2);
}
如果有人点击按钮,我会创建一个 UserControl 实例,然后我想检查它。
AddEntryControl formChild1 = new AddEntryControl();
IsUserControlAlreadyActive(formChild1);
您应该检查用户控件的类型,因为每个实例都是唯一的:
using System.Linq;
...
if (!tableLayoutPanel1.Controls.OfType<UserControl>()
.Select(u => u.GetType())
.Any(t => t.Equals(userControl.GetType())))
并对 mainActiveContr
进行类似的检查。