Диалоговое окно «Открыть файл» при нажатии метки ссылки

Я создал панель входа в систему, в которой я использовал прозрачное групповое поле (с текстовым полем имени пользователя и текстовым полем пароля) и использовал обои на заднем плане, теперь я использовал метку ссылки на этой панели входа в систему. нажав на который пользователь может изменить фоновый рисунок панели входа в систему.

Это означает, что когда пользователь нажимает на метку ссылки (lnklblChangeBackGround) с текстом «Нажмите здесь, чтобы изменить фон», открывается диалоговое окно, и пользователь может выбрать обои отсюда, а затем, нажав «ОК» или «Выбрать», обои будут назначены фону войти в панель

Может ли кто-нибудь помочь мне в этом

  1. как я могу открыть открытое диалоговое окно, нажав на метку ссылки
  2. как я могу назначить выбранные обои фоном моей панели входа в систему

Примечание. Я создаю это с помощью VS 2010 с использованием С#. и это настольное приложение, и я использую здесь winform.


person Ahsan Hussain    schedule 05.03.2014    source источник


Ответы (1)


Сначала вам нужно добавить событие (LinkClicked) к вашей метке ссылки.


Просто поместите этот код здесь, чтобы открыть диалоговое окно с файлом.

private String getPicture()
{
    string myPic = string.Empty;

    OpenFileDialog openFileDialog1 = new OpenFileDialog();
    openFileDialog1.Filter = "jpg (*.jpg)|*.jpg|png (*.png)|*.png";
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
        myPic = openFileDialog1.FileName;

    return myPic;
}

Вы можете отредактировать фильтр, чтобы пользователь не выбирал изображения, что, по вашему мнению, не поддерживается.

С помощью этого кода ниже вы можете установить фоновое изображение вашего pictureBox

private void setBackground(String picture)
{
    pictureBox1.Image = null;
    pictureBox1.Image = Image.FromFile(picture);
}

И окончательный вариант будет выглядеть так

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    String myFile = getPicture();
    setBackground(myFile);
}

если это слишком много кода или слишком сложно для вас, вы можете просто поместить все это в одну функцию, подобную этой

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    string myPic = string.Empty;

    OpenFileDialog openFileDialog1 = new OpenFileDialog();
    openFileDialog1.Filter = "jpg (*.jpg)|*.jpg|png (*.png)|*.png";
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
        myPic = openFileDialog1.FileName;
    pictureBox1.Image = null;
    pictureBox1.Image = Image.FromFile(myPic);
}
person TuVi    schedule 05.03.2014
comment
Спасибо, приятель, тренировка для меня :) - person Ahsan Hussain; 05.03.2014