2017-01-26 3 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). Вы также можете использовать Google для использования событий и найти что-то вроде [этого] (https://www.codeproject.com/Articles/11541/The-Simplest-C-Events-Example-Imaginable) или [это] (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); 
     } 
    } 

} 
Смежные вопросы