Don't have Click event in TextBox in WPF C# - c#

I just want to add simple thing, wherever i click on TextBox I want to delete text that is inside. The thing is I DON'T have in list of events, event called Click.. Is this even possible? Or just I need to install some add on. Buttons are fine, they have Click event.

MouseButtonLeftUp would work if you only are concerned with mouse clicks. With that said, what if someone tabs into the box or focus is entered by other means?
At that point you may want to look at the GotFocus event. Any time the TextBox receives focus, you can handle the event.

TextBox has events called MouseLeftButtonUp and MouseLeftButtonDown, you can use them.

Related

Add Default Event Handler For All Selected Controls

I have a fair number of buttons on one form and I want to add separate click (default) event handler for each. If I double click one control it adds the empty click event handler to the code behind.
Is there anyway for me to select, say 20, buttons and add a separate default handler for each?
I have tried Shift double click, Alt double click Ctrl double click but they all do the same, add one event handler and assign it to all the controls.
Edit
I get that I could have the same event handler for all the buttons, work out which one was click etc etc. This is not what I am asking. I just wanted a quick way to add the empty click handler for all selected buttons.
Sorry. Misunderstood the question, so removing the old answer as it's not really applicable.
My advice would be open the Form cs file in a text editor, find the region where the control/event bindings occur and copy, paste a particular Button line updating the event and id after.
Pretty laborious still.

WinForms Button Click event and similar events depend on focus

I have the next situation:
there is a client app with a Form
the Form contains a few TabControl's
there are different controls on TabPage's of TabControl's
when the user clicks on any control, I need to activate the TabPage that is a parent of a control. For that I use a TabPage Enter event
when the TabPage gets activated, I need to make request to the server app, and I put focus to a hidden TextBox to disable UI
The problem is, when I click on a Button on another TabPage, in TabPage.Enter event handler I take focus to my hidden TextBox, and it seems like Button click event doesn't have enough time to be processed. When I put timer and handle TabPage.Enter event after 100 ms, the Button click event seems to be fired well. Same thing happens to all the controls: CheckBox doesn't get checked, RadioButton too. I wouldn't like to use timer, as that is not a stable solution.
Any ideas how could I make TabPage to process all mouse events before I take focus to hidden TextBox? I tried to use Application.DoEvents(), but that didn't help.
You are using a wrong event for a wrong control for what you are trying to do.
Enter event for TabPage is going to be fired when that page becomes an active control of the current form which might not happen under certain conditions. Instead, you need to use Selecting or Selected event of TabControl, depending on whether you want to cancel switching to a different tab or not (see TabControlCancelEventArgs parameter of Selecting event). In your case, Selecting event would be more appropriate since it won't allow switching to a selected tab until event is complete (unless you're doing an asynchronous request to the server). Additionally, you may no longer need to use the hidden TextBox.
UPDATE
Regarding comments to OP, when you have 2 (or more) TabControls on a form and you want to get notified when you press a button in any tab of a different TabControl, you can use Enter event for TabControl. Use a global variable to store which TabControl was activated in the Enter event and then send server request for a currently active tab of that activate TabControl.
If this doesn't work for your scenario, then you need to carefully examine your workflow and see if it can be improved in relation to what you want to accomplish.

What is the property that says a button was selected in c#?

i've been searching on internet for the property that says that a normal button was selected or not, i think there must be one because when you click a button, it turns light blue, regardless the mouse is over it or not, and when you click another button, the previous button changes back to normal and the new clicked button is set light blue.
I need it to know which button was just selected and draw a "resizing" square on it, and it gotta last as long as the button remains as the "selected one".
thanks in advance.
What you are looking for is the Focused property. For actually any Control it returns, whether it has input focus or not (so e.g. hitting Enter will cause the button to be clicked as well). Since it sounds like you want to be notified whenever that property changes, you should use the GotFocus and LostFocus events.
You can give a Control focus programmatically by calling Focus.
you can do two things,
you can do it with the events: mouseEnter and MouseLeave,
this events launches when the mouse enters or leaves the visible control area,
also the focused(boolean) property gets and sets the "selected" element
one solution could be to:
private void onElementMousenter(blablabla,sender e);
{
e.Focused=true;
}
and assign the mouseEnter events in all controls to this one so the last element will be the "selected one" until you select another

TextChange in Gridview Textbox prevent button event

I have a text box on a Gridview which I'm allowing some data to be edited. When the enter key is hit, the TextChanged event happens, like I'd expect. But when i change the data and click a button, the button effect not happen. I must click the button again to fire button event. I think it happen because the grid didnot lost it focus.
How to make it possible fire the button event just in one click?
You can change your gridview element's IsTabStop property to false to gain that effect.
Also if you want to cycle with Tab you can TabNavigation="Cycle" .
Both changes are in xaml.
Not much we can do to help you here without the code itself but here are couple things you could try to debug this:
Try different browsers – it may be a browser issue
Try some client side debugging – just open console and see if anything happens when you click the button for the first time

Touching a Button should open a new DropDown. Even possible?

Well, I have a Button on my Window.
The following describes what I would like to do:
Touching the Button with the Mouse (I assume, the best event would be MouseMove), should open a new DropDown at the Button. (Something similiar like a Combobox DropDown)
This Dropdown will be filled with data, and each item is an event (item will show the name of the event as string in the DropDown), which calls a method that I'm at the other hand determining over Reflection.
What I actually would like to know, is, if it is even possible, to accomplish this task?
Creating a new DropDown at or beside the button, when the user touches the Button with the Mouse?
How would you do that?
You could create a Context Menu and display it on the buttons Mouse Enter Event.
See MSDN ContextMenu for more information.
The Extended Wpf Toolkit got something like that:
DropDownButton
For touch I think the closest event is mouse enter and mouse leave. And could you not just have a ComboBox or ListBox and manipulate the visibility (on the mouse enter and mouse leave events). For mouse leave would need to be on panel with both the button and DropDown.

Categories

Resources