动名词完成式做主语应该是比较老的用法,现代英语通常用动名词替代,根据语境和语言逻辑,人们可以判断出事情发生的时间的先后。动名词完成式做主语一般偶尔见于语法书上。另外,此题因为句子谓语动词是将来时,更不能使用D,因为这里是一种推测,事实还没有发生。如果是改为...is one of the worst mistakes you have made.或...was one of the worst mistakes he made.则可以使用Having ignored...形式做主语了,尽管现代英语中已经不常见了。因此B ignoring是正确选项。