logo
down
shadow

C# - TreeView Context Menu Out of Place when using keyboard


C# - TreeView Context Menu Out of Place when using keyboard

Content Index :

C# - TreeView Context Menu Out of Place when using keyboard
Tag : chash , By : walkah
Date : November 27 2020, 09:01 AM

fixed the issue. Will look into that further Looking at the reference source implementation, this seems to be a default implementation for any control (not just TreeView) context menu handling when activated by keyboard, which works fine for TextBox like controls. Interestingly, the documentation for WM_CONTEXTMENU message contains the following statement in the Remarks section
class MyTreeView : TreeView
{
    const int WM_CONTEXTMENU = 0x007B;
    protected override void WndProc(ref Message m)
    {
        if (m.Msg == WM_CONTEXTMENU && (long)m.LParam == -1 && this.ContextMenu != null)
        {
            var selectedNode = this.SelectedNode;
            if (selectedNode == null) return;
            var rect = selectedNode.Bounds;
            var pt = new Point(rect.X + rect.Width / 2, rect.Y + rect.Height / 2);
            if (!this.ClientRectangle.Contains(pt)) return;
            this.ContextMenu.Show(this, pt);
            return;
        }
        base.WndProc(ref m);
    }
}

Comments
No Comments Right Now !

Boards Message :
You Must Login Or Sign Up to Add Your Comments .

Share : facebook icon twitter icon

C# WinForms - TreeView, Context Menu


Tag : winforms , By : Mariocki
Date : March 29 2020, 07:55 AM
wish helps you If you handle TreeNodeMouseClick, then your TreeNodeMouseClickEventHandler will be passed a TreeNodeMouseClickEventArgs argument.
TreeNodeMouseClickEventArgs.Node will be the TreeNode reference you want. See the TreeNodeMouseClick docs for an example similar to:
void treeView1_NodeMouseClick(object sender,  
    TreeNodeMouseClickEventArgs e)
{
    TreeNode theTreeNodeIWant = e.Node

}

Disable TreeView context menu items when nothing is selected in the TreeView from XAML


Tag : wpf , By : Puneet Madaan
Date : March 29 2020, 07:55 AM
it should still fix some issue I am trying to disable certain menu items in a treeview's context menu if the SelectedItem property for the treeview is null. My expectation is that this would be most simple to achieve by binding the SelectedItem property of the TreeView to the IsEnabled property of the MenuItem with a converter in between. , here is a workaround using DataTrigger
<TreeView Name="treeView">
    <TreeViewItem Header="Parent"
                  IsExpanded="True">
        <TreeViewItem Header="Child" />
    </TreeViewItem>
    <TreeViewItem Header="Sibling" />
    <TreeView.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Copy"
                      x:Name="copy">
                <MenuItem.Style>
                    <Style TargetType="MenuItem">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding PlacementTarget.SelectedItem,RelativeSource={RelativeSource FindAncestor, AncestorType=ContextMenu}}"
                                         Value="{x:Null}">
                                <Setter Property="IsEnabled"
                                        Value="False" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </MenuItem.Style>
            </MenuItem>
            <MenuItem Header="Paste" />
        </ContextMenu>
    </TreeView.ContextMenu>
</TreeView>

Context menu on Treeview


Tag : chash , By : KS9
Date : March 29 2020, 07:55 AM
I think the issue was by ths following , Edit - Try this new code. I am using a converter to show and hide the contextmenu based on your property. It works with my sample code. Let me know if you want my sample code.
 <Grid>
    <Grid.Resources>
        <BooleanToVisibilityConverter x:Key="VisibilityConverter" />
        <ContextMenu x:Key="MenuOne" Visibility="{Binding IsFolder,Converter={StaticResource VisibilityConverter}}">
            <MenuItem Header="Add Folder" Command="{Binding AddFolderCommand}"/>
            <MenuItem Header="Add Item" Command="{Binding AddItemCommand}"/>
        </ContextMenu>
    </Grid.Resources>
    <TreeView Name="SymbolsTreeView" ItemsSource="{Binding Items}">
        <TreeView.Resources>
            <HierarchicalDataTemplate DataType="{x:Type local:MyTreeViewItem}" ItemsSource="{Binding Items}">
                <ContentControl>

                <TextBlock Text="{Binding Name}"/>
                </ContentControl>

            </HierarchicalDataTemplate>
            <Style TargetType="TreeViewItem">
                <Setter Property="ContextMenu" Value="{StaticResource MenuOne}"/>
                <Setter Property="IsExpanded" Value="True"/>
            </Style>
        </TreeView.Resources>
    </TreeView>
</Grid>

Using the Keyboard to show a context menu in a data bound WPF TreeView


Tag : wpf , By : Steve
Date : March 29 2020, 07:55 AM

Different context menu for every TreeView Node


Tag : javafx , By : Paul McKee
Date : March 29 2020, 07:55 AM
Related Posts Related QUESTIONS :
  • How to return to previous search page without being asked to Confirm Form Re-submission and keeping the results on ASP.N
  • How set a identity scaffolding item/page how initial page in asp.net MVC core?
  • LINQ isn't calling Dispose on my IEnumerator when using Union and Select, expected behavior or bug?
  • What is "ByteArray.uncompress()" in AS3 equivalent to in C#?
  • Getting a specific letter from a string variable for my simple guessing game for clues
  • Send an email with Outlook without a subject --- dialog box issue
  • passing List<MyModel> from my controller in the "WebInterfaceProject" to the processor method in "D
  • How to convert Word document created from template by OpenXML into MemoryStream?
  • How can I make a single slider that changes the color of an object?
  • Remap JSON parameter in c#
  • What is the difference between "this ref" and "ref this" when talking about C# 7.2 ref extension met
  • Convert OpenSSL encryption into native C#
  • Accessing Properties in Razor Pages
  • How to get SOAP element value
  • Projection after Group
  • C# error cannot convert sytem.text.regularexpressions.match to string
  • Issues with Save/Load System in a Text Based Adventure game made with ScriptableObjects in Unity
  • VS2019 MSBuild.exe - ASP .Net MVC project fails to publish when using PublishProfile, but works when using OutDir parame
  • Does <pages validateRequest="false" /> in Web.config still matter?
  • How to send new request to redirect URL with new access token
  • Attempt to invoke virtual method on a null object reference Xamarin LockScreen
  • "The attribute names could not be inferred from bind attribute 'bind-value'" exception in Blazor
  • How to fix ''System.ArgumentException" in c#?
  • C#. Ref returning delegate for ref extension method
  • Swashbuckle Swagger generate an actual guid
  • Trying to make thousands of database calls simultaneously - they stack instead of running concurently
  • run mstest from cmd using testcontainer
  • How to make M:N (many-to-many) relationship where both M and N are the same entities?
  • Consume COM DLL from multiple clients
  • Convert json string response representing UCHAR array to Byte array
  • Why does this LinqPad program produce different results on the second run?
  • ServiceStack how to use MaxLoginAttempts feature
  • What does "late-bound access to the destination object" mean?
  • How to load appsettings.json inside a Static class based on deploy environment so that I can use in other class librarie
  • dynamically add images to view
  • Are static extension methods on User object safe?
  • Process thousands of database calls simultaneously
  • Trying to decrypt a string with public key(not private) using bouncycastle in .net
  • How to retrieve the name of an usb device
  • Query many-to-many related data using Entity Framework Core
  • ASP.NET MVC : how to find the view from a controller?
  • Inconsistent behaviour using Entity Framework for ASP.NET MVC app vs windows service
  • AutoFixture Customize vs Build
  • How to change textbox location at the click of a mouse in live mode?
  • How can I deserialize a XML file without defining the parent node?
  • asp.net core how decrease class coupling
  • ASP.NET Core Razor Pages Routing With parameters
  • String Escaping With $ Interpolation and @ Encoding
  • ConfigurationManager in ASP.NET WebAPI tested with HttpServer
  • Top down shooting in Unity 2D don't work as I want it to
  • Use own redirectUri when the Authentication expires
  • Using "foreach" in string array c#
  • "Object reference not set to an instance of an object" for create multiply models on one view
  • Get data passed trought pushAsync
  • Selector expression dynamic on IQueryable
  • Logut with SignInManager not calling method
  • Exit event handler with MessageBox OK button
  • Can not load view from Custom Renderer Xamarin Forms
  • Looking for a .Net ORM
  • Cost of SortedDictionary.Count
  • shadow
    Privacy Policy - Terms - Contact Us © scrbit.com