0

我创建了一个登录面板,其中使用了透明组框(带有用户名文本框和密码文本框),并在背景上使用了墙纸,现在我在此登录面板上使用了链接标签单击它,用户可以更改登录面板的背景墙纸。

意味着当用户单击带有文本“单击此处更改背景”的链接标签(lnklblChangeBackGround)时,将打开打开对话框,用户可以从此处选择墙纸,然后单击确定或选择墙纸将分配给背景登录面板

任何人都可以帮我解决这个问题

  1. 如何通过单击链接标签打开打开的对话框
  2. 如何将选择的壁纸分配给我的登录面板的背景

注意:我正在使用 C# 使用 VS 2010 创建它。它是一个桌面应用程序,我在这里使用 winform。

4

1 回答 1

3

首先,您必须将一个事件 (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;
}

您可以编辑过滤器以避免用户选择图像,您认为这是不支持的。

使用下面的代码,您可以设置图片框的背景图像

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);
}
于 2014-03-05T08:43:37.927 回答