This might be a solution. Please copy the following code to your form :
List<int> numbers = new List<int>();
private void positiveButton_Click(object sender, EventArgs e)
{
RefreshList(numbers.Where(x => x > 0).ToList());
}
private void RefreshList(List<int> list)
{
listBox1.Items.Clear();
foreach (int item in list)
listBox1.Items.Add(item);
}
private void addButton_Click(object sender, EventArgs e)
{
int newValue;
if (int.TryParse(textBox1.Text, out newValue))
{
numbers.Add(newValue);
listBox1.Items.Add(textBox1.Text);
}
else
MessageBox.Show("Please enter a number.");
}
private void ShowAllButton_Click(object sender, EventArgs e)
{
RefreshList(numbers);
}
private void lifoButton_Click(object sender, EventArgs e)
{
numbers.Reverse();
RefreshList(numbers);
}
you should design your form like this :

I used a listbox for showing the numbers and a list in background to keep them all.
EDIT :
add this button to solve the problem
private void lifoPositiveButton_Click(object sender, EventArgs e)
{
RefreshList(numbers.Where(x => x > 0).Reverse().ToList());
}
Design the form and assign the appropriate events.
I hope this helps.