| File: System\Windows\Forms\Internal\OwnedObjectExtensions.cs | Web Access |
| Project: src\winforms\src\System.Windows.Forms\System.Windows.Forms.csproj (System.Windows.Forms) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace System.Windows.Forms; internal static class OwnedObjectExtensions { /// <summary> /// Tries to get the owner as the given type. /// </summary> public static bool TryGetOwnerAs<TOwner, TAs>( this IOwnedObject<TOwner> ownedObject, [NotNullWhen(true)] out TAs? ownerAs) where TOwner : class where TAs : class { ownerAs = ownedObject.Owner as TAs; return ownerAs is not null; } /// <summary> /// If the owner object exists, then verify if the handle is created, if owner does not exist, return false. /// </summary> public static bool IsOwnerHandleCreated<TOwner, TAs>( this IOwnedObject<TOwner> ownedObject, [NotNullWhen(true)] out TAs? ownerAs) where TOwner : class where TAs : Control { ownerAs = ownedObject.Owner as TAs; if (ownerAs is null) { return false; } if (!ownerAs.IsHandleCreated) { ownerAs = null; return false; } return true; } }