2017-01-26 43 views
-2

我想從一個類中調用一個事件,我在一個名爲Placeholder.cs的單獨文件中.NetFramework中。C#調用另一個類的事件.Net Framework

我有一個名爲Username_TextBox的文本框,我想從中調用事件。我不確定是否需要創建一個事件處理程序或可以執行此操作的方法。我曾嘗試創建一個我想引用該事件的類的新實例,但我不知道如何將其分配或引用到Username_TextBox

+1

你不會調用事件,你訂閱他們。實際上,按照你的說法,這是一個事件誰打電話給你(或更技術上說,任何訂閱事件處理程序)。 – InBetween

+0

有些代碼會有幫助。 'Username_TextBox'是你的自定義類嗎? –

+1

首先,請閱讀[如何在SO上提出一個好問題](http://stackoverflow.com/help/how-to-ask)。你也可以谷歌如何使用事件和找到像[這](https://www.codeproject.com/Articles/11541/The-Simplest-C-Events-Example-Imaginable)或[this](http: //www.c-sharpcorner.com/uploadfile/Ashush/events-in-C-Sharp/),然後如果您有任何問題,請在此提供[示例](http://stackoverflow.com/help/ mcve)說明你的問題。 – Fabjan

回答

0

從您的評論中,您聽起來像是有一個Textbox,其中有一些文字,而當Textbox有焦點時,您希望刪除該文字?

如果我理解你的評論,那麼下面的代碼可能會幫助你。

public partial class Form1 : Form 
{ 
    [DllImport("user32.dll", CharSet = CharSet.Auto)] 
    static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, [MarshalAs(UnmanagedType.LPWStr)] string lParam); 

    private const uint EM_SETCUEBANNER = 0x1501; 
    private const uint CB_SETCUEBANNER = 0x1703; 

    public Form1() 
    { 
     InitializeComponent(); 

     //Text that will appear in the textbox if it is empty 
     setCueText(textBox1, "Enter password here"); 
    } 


    private void setCueText(Control ctl, string text) 
    { 
     if (ctl is ComboBox) 
     { 
      SendMessage(ctl.Handle, CB_SETCUEBANNER, (IntPtr)0, text); 
     } 
     else 
     { 
      SendMessage(ctl.Handle, EM_SETCUEBANNER, (IntPtr)0, text); 
     } 
    } 

}