Tablica przycisków -

0

Witam!
Mam taki kod:

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?

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

1

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

1

może wystarczy:

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

?

0
 
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?

0

U mnie działa.
WrapPanel masz dodany?

0

Jasne mam taki kod w XAML:

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

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

0

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

1

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

for (int i = 0; i < 5; i++)
{
    foo[i].Click += Button_Click;
}
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.