2014-02-21 10 views
1

Я только начал изучать C#, и мне было интересно, можно ли было
изменить «имя» Пустоты (если это то же самое, что и Sub в VB.NET)? Я знаю, что некоторые основные вещи о VB.NET,
и это код кнопки мыши в VB.NET:Изменить название Void? (Equal to Private Sub NameOfSub())

Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click 

End Sub 

Когда я дважды нажать на кнопку, чтобы добавить код в C# все, что я получаю это:

private void Button1_Click(object sender, EventArgs e) 
{ 

} 

Как я могу изменить имя Void на что-то еще и заставить его работать с кнопкой? А также, как я могу изменить часть в C#, где в VB.NET я могу просто изменить Handles Button1.Click на что-то еще, например Button1.MouseEnter?

Прошу прощения за неправильное объяснение, английский - это не мой родной язык. Буду признателен за любую доступную помощь.

добавил:Если этот вопрос является возможным дубликатом Извиняюсь, я использовал Google и возможность поиска здесь, чтобы найти ответ, к сожалению, я не мог найти.

Редактировать: Нет, я использую Visual C#.

+0

'void' является эквивалентом' Sub' в VB, то есть функция не возвращает значения и просто выполняет какое-либо действие. Почему вы хотите избавиться от него? –

+1

@YuriyGalanter, он просто ищет переименовать обработчик, а не удалять его. – basher

+1

Ох. Из содержания вопроса я был уверен, что OP хочет заменить фактическое ключевое слово 'void' чем-то другим. –

ответ

3

Вам не хватает части кода.

Когда вы создаете экземпляр своей кнопки, вы связываете ее с методом обработки событий.

Button1.Click += new EventHandler(this.Button1_Click); 

Если вы хотите изменить название своего метода (Button1_Click) вам нужно будет изменить как метод:

private void MyNewButtonEventHandler(object sender, EventArgs e) 

и обработчик:

Button1.Click += MyNewButtonEventHandler; 

Обработчик Код обычно находится в файле designer.cs.

+0

Спасибо. Это то, что я искал. Хотя немного неудобно открывать дизайнера каждый раз, когда я хочу использовать этот код, он работает именно так, как я этого хочу. Я постараюсь ответить на этот вопрос как лучший из них. Я также ценю другие ответы! – RAJVH

+0

@ RAJVH Если вы установите код вашего обработчика в основном корпусе, его не будут помещать в конструктора. Просто переместите его один раз, и он всегда будет там, где вы этого хотите. – paqogomez

+0

Сделаю это, спасибо. – RAJVH

4

Вы используете asp.net?

Вы можете добавить EventHandler, для образца:

Button1.Click += Button1_Click; 

В ASP.NET можно указать на теге элемента управления, для образца:

<asp:Button ID="Button1" runat="server" OnClick="Button1_Click"></asp:Button> 

(он работает для обоих, C# и Vb.Net)

В приложении Windows Forms обработчик событий добавлен в файл дизайна (посмотрите там и поймите, как все работает ... это не просто магия, а как очертание и падение).

0

Кнопки и Обработчики событий

При нажатии кнопки на экране, то она генерирует событие щелчка. Вам нужно написать метод ответа на этот клик. Любой метод, который мы используем для ответа на событие (вообще говоря), называется обработчиком событий. Вы должны сообщить своей программе, какие кнопки идут с какими обработчиками событий. Мы называем это регистрацией обработчика событий.

Итак, для кнопок и обработчиков событий нет значения возврата, поэтому оно будет недействительным (значит, обработчики событий никогда не возвращают никакого значения.) В любом случае.

Также вы не можете изменить основной синтаксис (правила, разработанные и навязанные C#) C# или VB.NET, поэтому вам нужно следовать этому протоколу. Если вам это не нравится. Bro продвигается вперед и выбирает другую технологическую платформу.

Что касается изменения события, вы можете выбрать некоторые другие обработчики событий для некоторых элементов управления. Вы можете назвать свой метод событий тем, что хотите.

0

Возможно, мне не ясно, о чем вы спрашиваете, но такие события, как «Click» или «MouseEnter», ничего не возвращают, поэтому тип возврата недействителен.


Это кажется мне, как вы хотите, чтобы события возвращают значение, так что вы можете сделать что-то со значением.

Я бы рекомендовал сохранить вашу логику в отдельном методе/классе, а не в самих событиях. После этого вы можете вызвать ту же логику из нескольких событий, а код будет легче поддерживать: ответ

private string DoSomething() 
{ 
    ... 
    ... 

    return "someValue"; 
} 

private void Button1_Click(object sender, EventArgs e) 
{ 
    DoSomething(); // execute the code 
} 

private void Button1_MouseEnter(object sender, EventArgs e) 
{ 
    DoSomething(); // execute the code here too 
} 

private void SomeOtherMethodThatNeedsTheReturnValue() 
{ 
    var returnValue = DoSomething(); // execute the code, use the return value 

    // do something else with the returnValue 
} 
0

paqogomez является правильным, но я чувствую, что это не самый простой подход к этой проблеме. Самый простой способ переименовать метод (или просто что-нибудь в вашем коде, если честно) - это щелкнуть правой кнопкой мыши по имени метода и выбрать Рефакторинг> Переименовать ... (или что бы то ни было эквивалентно на вашем языке), и Visual Studio выполнит всю работу за вас, переименовав как метод, так и обработчик. Вы также можете просто нажать F2, чтобы переименовать любой символ, выбранный в вашем коде (или где в данный момент находится каретка редактора).

Честно говоря, вы не должны путаться вручную в автоматически создаваемом файле конструктора, если не возникнет проблема, которую нужно исправить, поскольку ваши изменения могут игнорироваться, когда дизайнер снова меняет код или вы можете сломать конструктор.

Если вы хотите вручную объявить собственные обработчики событий в коде, вы должны сделать это в конструкторе формы или окна после метода InitializeComponent. Но на самом деле нет оснований не использовать большую часть времени обработчика обработчика событий конструктора.

+0

Спасибо, это действительно более простой способ сделать это. Но тогда есть шанс, что я забуду, как это сделать вручную в коде, поэтому я предполагаю, что буду использовать оба подхода. – RAJVH

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