要启用在禁用控件中右键单击

本文关键字:右键 单击 控件 启用 | 更新日期: 2023-09-27 18:10:41

我有一个文本框这是禁用的,并有价值。我想启用右键单击选项,从文本框(Windows应用程序)复制禁用值。请帮我做这件事

要启用在禁用控件中右键单击

试试这个,记住你必须添加你的contextmenustrip:

private void YourFormName_Load(object sender, EventArgs e)
{
     ContextMenu mnu = new ContextMenu();
     MenuItem mnuCopy = new MenuItem("Copy");
     mnuCopy.Click += (sen, ev) =>
     { 
         System.Windows.Forms.Clipboard.SetText(YourTextBoxName.Text);
     };
     mnu.MenuItems.AddRange(new MenuItem[] { mnuCopy });
     YourTextBoxName.ContextMenu = mnu;
}
private void YourFormName_MouseUp(object sender, MouseEventArgs e)
{
    Control ctl = this.GetChildAtPoint(e.Location);
    if (ctl != null && !ctl.Enabled && ctl.ContextMenu != null)
    ctl.ContextMenu.Show(this, e.Location);
}

当您单击页面中被禁用的元素时,该事件由被禁用元素的父元素处理。例如,如果您的文本框在页面中,则该页将处理它。如果文本框位于不同的容器(如div)中,则该容器将处理鼠标单击事件。针对您的情况,您可以在父元素上编写处理程序。一个javascript函数,它将捕获事件,并可以为您读取值。例如,JS函数可以将disabled属性更改为false,读取该值,然后再次禁用文本框。

回到Vijaya的答案,我通过将控件与Dock=Fill放入具有零填充和边距的面板控件来处理这个问题。所以你可以在面板的MouseUp事件中做你的事情