我有一个禁用且有价值的文本框。我想启用右键单击选项从文本框中复制禁用的值(Windows应用程序)。请帮助我这样做。
答案 0 :(得分:1)
试试这个,请记住你必须添加你的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);
}
答案 1 :(得分:0)
回到Vijaya的答案,我通过将带有/productmedia/na-media/media-manager-thumbnails/filer_public_thumbnails/app-images/thumbs540/__540x540_car-vent-clip-silo.jpg?v3.16.5-na
/productmedia/na-media/media-manager-thumbnails/filer_public_thumbnails/app-images/thumbs540/__540x540_403720-car-vent-clip-enviro.jpg?v3.16.5-na
/productmedia/na-media/media-manager-thumbnails/filer_public_thumbnails/app-images/thumbs100/__100x100_car-vent-clip-silo.jpg?v3.16.5-na
的控件放入填充和边距为零的面板控件中来解决了这个问题。因此,您可以在面板的MouseUp事件中进行操作。
答案 2 :(得分:-1)
当您单击页面中的已禁用元素时,该事件由disabled元素的父元素处理。 例如,如果您的文本框位于页面中,则页面会处理它。如果文本框位于不同的容器(如div)中,则该容器将处理鼠标单击事件。 根据您的情况,您可以在父元素上编写处理程序。 一个javascript函数,它将捕获事件,它可以为您读取值。例如,JS函数可以将disabled属性更改为false,读取值,然后再次禁用文本框。