Znak specjalny po wciśnięciu klawisza

0

Witam,

Mam problem z ustawieniem do aktywnego wiersza w DataGridView, aby móc dopisać np. znak stopnia " ° " po wciśnięciu dowolnego oprogramowanego buttona.

Chodzi o wygodę, zamiast wciskania ALT + 0176 wystarczy wcisnąć klawisz i gotowe.

1

A masz kolumnę z różnymi danymi? Część jest wyrażona w stopniach a część nie? Jeśli wszystkie są stopniami to po co ten znak tam w ogóle - tylko komplikuje. Dorysuj go na interfejsie a w bazie danych, pamięci i polu nie musisz go mieć.
Ale jeśli naprawdę chcesz to napisz z czym masz problem. Musisz tylko obsłużyć zdarzenie naciśnięcia klawisza, znaleźć aktualnie zaznaczoną komórkę i dopisać wartość. Pokaż kod i co nie działa

0

@obscurity: Tabela docelowo będzie mieć różne dane i może się pojawić znać " ° ". Problem jest taki, że jeszcze nie ogarnąłem kodu, bo zastanawiam się co konkretnie dopisać do CellBeginEdit, żeby podlinkować przycisk, który będzie wrzucał gotowego stringa do aktywnej komórki.

0

A chodzi o naciśnięcie przycisku, nie klawisz na klawiaturze, tak? No to problem jest taki że w momencie naciśnięcia przycisku nie masz focusa na gridzie i nie możesz sprawdzić aktywnej komórki. W CellBeginEdit tylko zapamiętaj współrzędne pola a w przycisku dopisz wartość do pola w tym wierszu i kolumnie.

Nie wspomogę konkretnym kodem bo musiałbym sobie winformsy przypominać

0

Jeżeli zbinduje sobie Selected Cell do obiektu, to nawet jak straci focusa będzie wiedział który jest zaznaczony. Więc pozostaje wtedy edytować tekst i zwrócić Focus 🤗

0

@obscurity: Zrobiłem tak:

new Control ActiveControl = new Control();

W zdarzeniu Click na button:

Button znakSpecjalny = (Button)sender; ActiveControl.Focus();
``SendKeys.Send(znakSpecjalny.Text);

Działa po kliknięciu, tylko problem jest taki, że wkłada mi całą nazwę buttona, a ja potrzebuję zaszyć symbol pod nazwą, czyli potrzebuję przycisk "Wstaw symbol", a nie tylko przycisk o nazwie "°"

Jakieś sugestie?

0

Stopień to bodajże 176 w ascii.
Char z = (char) 176;
Wewnątrz metody button1click dodaj:
MyControl.Text += (char) 176 ;

0

IMO to zly pomysł. Nie wiem czy standardowy grid ma format string dla wartości. Ja wstawiam w edycji tylko cyfry A jednostki są w FormatString (W gridzie z DevExpress). Jeśli to zapisujesz gdzieś potem to ten znak Ci nie przeszkadza?

1 użytkowników online, w tym zalogowanych: 0, gości: 1