How to explicitly set a Control's Event order - c#

I have a listbox which I have used as an autocomplete list in my C# windows application, which has events like MouseClick and Leave.
On MouseClick, I want to set the selected value to a textbox.
On Leave, I want to hide the listbox
Now, the problem is, when I click on a value in listbox, the leave event is fired and listbox gets hidden without setting the value. If I unset the leave event, things work as expected.
NOTE: The purpose of Leave event is to only hide the listbox when some other control is clicked. The autocomplete textbox is implemented using this reference: WinForms | C# | AutoComplete in the Middle of a Textbox?

Related

How to get the clicked event of a wpf data grid?

I have a DataGrid with programmaticaly added rows (items) by adding an ItemSource.
I do not want the user to edit the cells so I set IsReadOnly = true;.
But I want them to click on cells and output which cell was clicked.
I was searching for a Clicked event and was surprised there is no such event for a DataGrid. I want a behaviour like buttons where it doesn't matter if it's clicked by the mouse, space bar, enter or whatever else the system accepts as a "Click".
So how can I achieve that?
Whatever is in the cell template (TextBlock, for instance) could be styled to handle the PreviewMouseUp event and pull the information you want from the control or bound object. The click event is specific to Button, TextBox and other controls that deal with mouse capture. Here is a link that discusses the dilemma you are facing: http://blog.scottlogic.com/2008/12/02/wpf-datagrid-detecting-clicked-cell-and-row.html. He provides examples on how to accomplish the task at hand.

Determine if Listbox index change was from refresh or mouse click

I have a Win Forms listbox whose contents are refreshed every few seconds. The listbox displays messages stored in a database to which people can respond - it's a customized instant messenger app. When the refresh happens the selectedindex automatically changes to 0 which is a problem if I have the 6th message selected and I am trying to responding to it. How can I determine if the index change is a result of the refresh or a mouse click on the listbox and then stop the selection change if it's not a mouse click?
I believe I have found a solution to my question. I wasn't sure how to do event handlers so I researched that. I added an event handler to the MessageListBox.click event. This event handler sets a property called selectedIndex and is the only place that sets this value. In the refresh method I set the MessageListBox.SelectedIndex to this value after the Update/Refresh call.

Getting value of Combobox on Hover c#

I'm trying to make an application where I have this combobox that automatically opens and closes on mouse enter and mouse leave events respectively and then gets the value of the combobox before i leave it.
I already have the dropdown behavior as given by someone who posted it online. But now I need to get the value of my combobox item without clicking the mouse. I've tried selectedvalue or selecteditem but all seems to require mouse clicking. Is there any way of getting the value of the combobox where the mouse points to before I leave/close the combobox?
You can use labels for the combobox items.
Add 'MouseMove' event and in the event take the label text.
Here is an example how to implement very closely connected behavior: ComboBox MouseLeave MouseEnter.

Combobox is resetting it's index when another user control is clicked

I have created a comboBox in my windows form that is auto filled by some database data. When i selected an index there are some label on the win form to capture other details of particular index. but the problem is when i click another control after making a selection , that combobox reset its value to one of my index.
There are two common causes for this:
Does the comboBox have a Leave or LostFocus event that is causing the change?
When you click the other control, is an event fired that will affect the comboBox, either directly or indirectly?

C# PropertyGrid DoubleClick event capture

For a project I am working on, I have some values in a PropertyGrid that are many lines long. I want the user to be able to double-click a value in the grid, which will bring up my custom UI window. I already have it set up so that the UI works when the [...] button is clicked, but I also need it to show up directly if any grid item is double-clicked.
On a side note, looping through the controls of the PropertyGrid and assigning Click/Mouse events to them allows this to happen when the property name is clicked, but still does not capture the click when the property value is clicked. Any suggestions?

Categories