Zaznaczenie i pobranie wartości z kilku TextBoxów

0

Witam,
czy mógłby mi ktoś pomóc w następującym problemie?

Jak mogę zaznaczyć kilka textBoxów znajdujących się na form1 i pobrać ich wartość Text.
Tworzę interaktywny kalendarz. Wrzucam na formę 31 pictureBoxów odpowiadających dniom w miesiącu. Każdy z nich będzie zawierał textBox zawierający datę.
Użytkownik miałby zaznaczać np kilka dni za pomocą myszy. Potrzebuję więc zaczytać informację z textboxów które zaznaczył.
Za wszelką pomoc będę wdzięczny.

0

zastanów się czy aby textboxy będą do tego najlepsze.
jeśli już mowa o formsach to nie lepiej byłoby to oprzeć o jakiś datagridview lub coś pochodnego?

0

Też mi się wydaje, że własny DataGridView ze specjalnym typem DataGridViewCell byłby lepszy. Pewno byłoby trochę pracy przy przeciążaniu OnPaint, ale efekt łatwiejszy w zarządzaniu.

Natomiast najlepiej byłoby chyba nie robić tego w ogóle, tylko użyć czegoś z DevExpress czy Telerika, bądź podobnych. Być może są nawet darmowe.

0

Nie upieram się przy textBoxach. Szukam po prostu jakiegoś rozwiązania. Ściągnąłem trochę kontrolek z DevExpress ale nic takiego tam nie znalazłem.
Może spróbuję pokombinować coś z dataGridem.
Znacie jeszcze jakieś strony z darmowymi kontrolkami?

0

codeproject.com
codeplex.com

Pobaw się z owner draw. To nie jest takie trudne, a można fajne efekty uzyskać. Ale wracając do meritum.
Nie ma czegoś takiego jak zaznaczyć kilka textboxów. Tzn. nie ma z defaulta czegoś takiego, musisz sam to oprogramować. Wg najlepiej będzie przed textboxem dodać checkbox, bo jakoś trzeba zaznaczyć dzień. Ewentualnie kliknięcie w textbox (read-only) możesz zmieniać mu tło świadczące o wybraniu go i odkładać do jakiejś listy zaznaczony, jeśli już jest zaznaczony,to kolejne kliknięcie odznacza go.

List<DateTime> selectedDates = new List<DateTime>();

TextBox_Click(object sender, EventArgs e)
{
  DateTime dt = DateTime.Parse(((TextBox)sender).Text);
  if (selectedDates.Contains(dt)) //zaznaczony, odznaczamy
  {
    selectedDates.Remove(dt);
    ((TextBox)sender).BgColor = Colors.White;
  }
  else // niezaznaczony
  {
    selectedDates.Add(dt);
    ((TextBox)sender).BgColor = Colors.Gold; // a co tam, na bogato :)
  }
}

selectedDates może być udostępniane przez twoją kontrolkę innym. Także zaznaczenie/odznaczenie może rzucać jakieś zdarzenie.

0
Mario_Tychy80 napisał(a)

Ściągnąłem trochę kontrolek z DevExpress ale nic takiego tam nie znalazłem.

http://devexpress.com/Products/NET/Controls/WinForms/Scheduler/

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