2015-09-01 27 views
-2

我有一個文本框被禁用,並具有價值。並且我想啓用右鍵單擊選項從文本框(Windows應用程序)複製禁用的值。請幫我做到這一點。要啓用右鍵單擊禁用控件

+1

當我有類似需求時,我通常會這樣做,就是啓用'TextBox'並將其更改爲'ReadOnly'而不是禁用......這將允許您複製/粘貼該值,但不更改任何內容。 –

回答

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); 
} 
+0

可以確認這適用於從「Button」中獲取文本。一個'TextBox'不應該有太大的不同。 –

+0

如何複製此值並以另一種形式將其粘貼到另一個文本框中 – Dotnet

+0

查看我的更新答案。 – thewisegod

-1

當您單擊頁面中的禁用元素,該事件由殘疾人元素的父元素處理。例如,如果您的文本框在一個頁面中,則該頁面處理該頁面時爲 。如果文本框位於不同的容器(如div)中,則該容器將處理鼠標單擊事件。 爲你的情況,你可以在父元素上編寫一個處理程序。 一個JavaScript函數,可以捕獲事件,並且可以爲您讀取值。例如,JS函數可以將disabled屬性更改爲false,讀取該值,然後再次禁用該文本框。

+0

爲什麼當問題被標記爲C#和Winforms時,你會提到JavaScript。 –