Tablica przycisków -

Tablica przycisków -
0

Witam!
Mam taki kod:

Kopiuj
public Canvas[] foo = new Canvas[1];
//nie mogę się do niego odwołać np.
//w inicjalizacji okna chcę się do niego odwołać
foo[c].Name = "foo" + c; //wyjątek - NullReferenceException was unhandled by user code;

Gdzie jest problem?

fourfour
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 9 lat
  • Postów:627
1

Pewnie problem leży w tym, że tablica to już jest, ale obiektów w niej nie ma...

0
fourfour napisał(a):

Pewnie problem leży w tym, że tablica to już jest, ale obiektów w niej nie ma...

Czy mógł byś powiedzieć lub naprowadzić jak dodać takie obiekty do tablicy?

przepraszam za moje banalne pytania ale jestem początkujący

fourfour
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 9 lat
  • Postów:627
T2
  • Rejestracja:prawie 11 lat
  • Ostatnio:9 miesięcy
  • Postów:194
1

Opisz dokładniej co chcesz zrobić to lepiej będziemy mogli pomóc.

AL
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 2 miesiące
  • Postów:308
1

może wystarczy:

Kopiuj
foreach (Canvas canvas in foo) canvas = new Canvas();

?

0
Kopiuj
 
public MainWindow()
{ 
    InitializeComponent();
    int s = 50;
    for (var c = foo.Length - 1; c > 0; c--)
    {
        foo[c] = new Button();
        foo[c].Width = s; foo[c].Height = s; foo[c].Background = new SolidColorBrush(Color.FromRgb(128, 64, 32));
        wrapPanel1.Children.Add(foo[c]);
    }
}

Czemu nie wyświetlają się te przyciski w wrappanel?

spartanPAGE
jeszcze ciekawiej spróbuj iterować
dam1an
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
  • Postów:1589
0

U mnie działa.
WrapPanel masz dodany?

Trebuh
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:okolice Łodzi
0

Jasne mam taki kod w XAML:

Kopiuj
<WrapPanel Height="157" HorizontalAlignment="Left" Margin="12,128,0,0" Name="wrapPanel1" VerticalAlignment="Top" Width="395">
            
</WrapPanel>

GG: 10101100010110000100011101 (BIN)
"Nie wszystko napisane w internecie jest prawdą" - Józef Piłsudski.
edytowany 1x, ostatnio: Trebuh
dam1an
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
  • Postów:1589
1

No to też tak mam, przed tym kodem w c# jeszcze Button[] foo = new Button[5]; i działa wsio.

Trebuh
rzeczywiście działa, czemu nie może być jako public ta tablica?
dam1an
Może być. Ale po co?
Trebuh
Dziękuję bardzo za pomoc ;) - świetnie że można korzystać z forum nie mając konta/logując się na innych urządzeniach ;p
0

Przydały by się jednakowe zdarzenia do tej tablicy ;)
Pomożecie?

Degusto
  • Rejestracja:ponad 11 lat
  • Ostatnio:około rok
  • Lokalizacja:Piła
  • Postów:70
1

Jeśli chodzi Ci o takie same zdarzenia dla każdego buttona to możesz tak:

Kopiuj
for (int i = 0; i < 5; i++)
{
    foo[i].Click += Button_Click;
}
Kopiuj
private void Button_Click(object sender, EventArgs e)
{
    MessageBox.Show("Takie samo zdarzenie");
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.