VB.NET: How to change setting on Click events - vb.net

Visual Studio with VB.net: If I create a copy of a button on the forms designer, the click event is added to the click event handler of the source button.
How do I change this behaviour ? I want the click event of the second button be wired to a totally new click handler code, not to the already existing one of the first button.

There are two ways to copy a button.
CTRL+C / CTRL+V (or same with right click menu). This will create a new button with a new event handler. Note that this new event handler is not created automatically, but will be created on button click in VS designer.
CTRL + drag a control into a new location. This will create a copy with the same event handler, i.e. add an event handler to already existing one. This is the behavior you are seeing.
I'd be interested to know the official reference about this behavior, found the above by experiment. I've used CTRL + drag copy method 95% of the time, and had the same question for quite a while. Fortunately, there is a quick fix for event wiring - read below.
If you used the wrong method, you can manually delete the wiring code (the second handles clause), then double-click the button in question to create new click event handler for it (not a big deal).

Related

How can a ContextMenuToolStripItem be displayed, without doing it programmatically?

I've taken over a project, which contains some UltraWinGrid controls on some of the forms.
On one of the original forms which has been there since before I took on the project, there is a ContextMenuStrip, which has just one ContextMenuToolstripItem on it, captioned 'Default for Column'.
This ContextMenuStrip is hidden by default, however, when the user right-clicks on the UltraGrid, the ContextMenuStripItem is displayed on the grid (rather than at the top of them form where the ContextMenuStrip is).
I'm trying to replicate this behaviour in a new form that I've added myself, however, after adding the ContextMenuToolstripItem in, I cannot get it to display when right-clicking my grid.
I've put a breakpoint on every subroutine in the in the older forms class, and none of them are triggered when right-clicking it.
Additionally I have also searched the class for DefaultForColumnToolstripMenuItem, and the only place it appears is in the Click event of the ContextMenuToolStripItem itself.
So, how else is it possible to show it when right-clicking the grid? I've copy and pasted the ContextMenuStrip from the old form onto the new form and still nothing occurred.
I'm assuming it's in a property somewhere that I'm missing?
Check for a ContextMenuStrip property on the UltraWinGrid. You can set it in the designer and your context menu will appear on right click without having to deal with the MouseClick handler, checking the mousebutton used, etc.

RadDesktopAlert Click Event

Working with the RadDesktopAlert WinForms component by Telerik, I am wondering how can I perform an action when the user clicks anywhere on the alert window.
To put it blunt, the buttons suck, and it is much more natural (easier) for a user to just click anywhere in the window. I checked the basics, and there doesn't appear to be an event for "Click", nor does it appear to expose it's Hwnd or Handle.
The events that are available are
Closed
Closing
Disposed
Disposing
Opened
Opening
PropertyChanged
RadPropertyChanged
RadPropertyChanging
The problem with the buttons is the UI looks wacky when trying to right-align, and the "click" event doesn't fire unless you click well inside the button - TWICE. So using the Buttons are not an option. What I am looking for is a place to write code that runs when the user clicks anywhere on the RadDesktopAlert box.
Thanks in advance.
The RadDesktopAlert component, has a Popup property, which holds the actual popup element. You can use its Click event for the purpose:
AddHandler radDesktopAlert1.Popup.Click, AddressOf Popup_Click

Adding WithEvents to SerialPort object place on form in VB.NET

I have added a SerialPort object onto a form I created in a VB.NET solution. How do I add "WithEvents" to it, since I dragged it onto the form instead of creating it in code. Is it even necessary to do so?
Dragging it onto the form automatically adds it to the designer generated code as WithEvents - it has to or you wouldn't be able to hook up events in the Events pane. If you hit the "View All Files" toggle in the Solution Explorer you should be able to see the designer files. Have a look in there and you will find where the IDE adds this code.

Instantaneous event for DevExpress.XtraBars.BarEditItem check changed

I am currently using DevExpress 11.2 within Visual Studio 2010. Currently I am using two DevExpress.XtraBars.BarEditItem which gives me two check boxes (with a label) in my menu bar (DevExpress.XtraBars.Bar) at the top of my windows form. Right now I have working code so that when one checkbox is clicked it unchecks/checks the other checkbox and executes code specific to that box. This works.
My problem is that the DevExpress.XtraBars.BarEditItem does not have a check changed event. Currently I am using the EditValueChanged event as the checked check box is set to True and the unchecked checkbox is set to false. However the EditValueChanged event isn't called until the checkbox looses focus. This doesn't work for me as I want it instantaneous. I looked into the itemClick and ItemPress events but they don't give me the new editvalue and if someone presses on the caption (rather than the box portion) it still fires. Is there someway to get the event right away??
I am looking in two different older projects (both in Visual Studio 2008 and using DevExpress 9.2 and 10.2) and it looks like it does everything the same way as me yet the EditValueChanged event fires right away without any lose of focus.
Actually what you want to do is use the events on the repositoryCheckEdit that is in the BarItem, rather than the barEditItems events directly. It will have CheckChanged and CheckStateChanged Events that you can use.
The repository Item that you want to use for the events will be listed in the Edit property of the BarEditItem.
In Code:
Dim item As New DevExpress.XtraBars.BarEditItem
Dim Editor As New DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit
item.Edit = Editor
AddHandler Editor.CheckedChanged, AddressOf RepositoryItemCheckEdit1_CheckedChanged

Visual Basic 2010 Event Listeners on a List

I have a list of buttons in VB2010.
What is the best way to assign a function to their click event.
So every button has the same function, e.g.:
On Button Click
FireFunction(1)
End On Button Click
Without having to add a click event for every button.
The goal is to produce something similar to what is done with the Control Array idea in Visual Basic 2006.
Define a click function as in:
http://visualbasic.about.com/od/learnvbnet/a/eventhandler.htm
and react based on Sender. There may be a cleaner way to setup delegates in VB.NET, but I use it not.