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.
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.
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
@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.
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ć
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
@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?
Stopień to bodajże 176 w ascii.
Char z = (char) 176;
Wewnątrz metody button1click dodaj:
MyControl.Text += (char) 176 ;
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?