Здравствуйте,
подскажите пожалуйста,
в Visual studio нужно сделать оконное приложение - с левой стороны будет примерно 50 чекбосов, с правой стороны будет экран, куда будет выводиться результат-текст, в зависимости от выбранных чекбоксов - естественно это в экран не влезет, как мне сделать на панели скроллинг. чтобы можно было листать чекбоксы и выбирать нужные?
я неправильно задал вопрос - у меня панель со скроллом, там уже 5 чекбосов, как добавить еще 45 в невидимую область панели, которая потом будет видна при перелистывании?
alekseyizmaylov, увеличить до нужных размеров, а после добавления подогнать до требуемого размера.
50 элементов - это много :-) Понятно, раз мало опыта то другое решение не рассматривается, но думаю можно попробовать добавлять их динамически. Это будет проще и быстрее, нужно только сформулировать задачу.
Простой пример динамического добавления checkbox в панель:
private void Form1_Load(object sender, EventArgs e)
{
// lastTop - чтобы было проще понять, а так можно обойтись без этой переменной
int lastTop = 0;
// помещаем 50 checkbox-ов в panel1
for (int i = 0; i< 50; i++)
{
// создаем экземпляр
var checkbox = new CheckBox();
// задаем текст, в данном случае - индекс
checkbox.Text = i.ToString();
// цепляем обработчик изменения состояния
checkbox.CheckedChanged += checkbox_CheckedChanged;
// расположение
checkbox.Left = 0;
checkbox.Top = lastTop;
// добавляем в панель
panel1.Controls.Add(checkbox);
// рассчитываем положение для следующего checkbox
lastTop = checkbox.Top + checkbox.Height + 4;
}
}
// обработчик изменения состояния checkbox
private void checkbox_CheckedChanged(object sender, EventArgs e)
{
// получаем экземпляр, который вызвал обработчик
var checkbox = sender as CheckBox;
// показываем текст checkbox и состояние
MessageBox.Show($"{checkbox.Text} = {checkbox.Checked}");
}