I have faced this situation many times and below is what I do :
When obvious methods do not work .....(just like in your situation) :
Find out the database ID from sysdatabases.
Then execute -
sp_lock that will show all the locks on the instance along with spid and dbid.
Kill the spids with the dbid that you are trying to offline or drop.
Though, the process is a bit manual, it can be automated as below :
IF OBJECT_ID('tempdb.dbo.#temp', 'U') IS NOT NULL
DROP TABLE #temp;
create table #temp (spid int
, dbid int
, IndId bigint
declare @dbid int
select @dbid =DB_ID(db_name())
insert into #temp
select * from #temp
where dbid = @dbid