如何使用form1中的变量与用户控件?

时间:2015-03-13 22:09:57

标签: c# .net winforms

我在项目中创建了一个用户控件:右键单击项目名称>添加>用户控制。

然后在User Control设计器中添加了一些控件。 在User Control构造函数中,我做了:

public DopplerEffect()
        {
            InitializeComponent();

            InitGifFile = @"C:\Users\me\AppData\Local\mws\mws\temp_directory\file000050.gif";
            pen = new Pen(Color.Red, 3);
            formloadfirsttime = true;
            numericUpDown1.Value = 200;
            brush = new SolidBrush(Color.Red);
            trackBar2.Minimum = 1;
            trackBar2.Enabled = false;
            bmpnew = new Bitmap(512, 512);
            label1.Text = "";
            path_exe = Path.GetDirectoryName(Application.LocalUserAppDataPath);
            ScanClouds = Path.Combine(path_exe, ScanClouds);
            if (!Directory.Exists(ScanClouds))
            {
                Directory.CreateDirectory(ScanClouds);
            }
            ConvertedBmpDir = Path.Combine(ScanClouds, ConvertedBmpDir);
            if (!Directory.Exists(ConvertedBmpDir))
            {
                Directory.CreateDirectory(ConvertedBmpDir);
            }               
            b = new Bitmap(InitGifFile);
            b1 = new Bitmap(InitGifFile);
            pictureBox1.Image = b;
            ConvertedBmp = ConvertTo24(InitGifFile);
            mymem = ToStream(ConvertedBmp, ImageFormat.Bmp);
            startButton.Enabled = true;
            pauseButton.Enabled = false;

        }

现在我正在为gif文件使用静态目录:

问题是,当我将用户控件拖动到form1设计器时,它将在文件上运行:file000050.gif

但是我希望它使用我在form1代码中的form1中的文件我有一个名为的字符串文件:next_file

因此,当我在form1设计器中拖动用户控件时,我需要以某种方式自动获取next_file,因此InitGifFile应该是file000050.gif应该是next_file

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您必须向UserControl添加一个属性......类似于(在您的代码中)

public partial DopplerEffect : UserControl 
{
    private string m_nextFile;

    public string NextFile
    {
        get { return m_nextFile; }
        set 
        { 
           m_nextFile = value; 
           DoSomethingWithNextFile(); // do loading of your image
        }
    }

    public DopplerEffect() { ... }
}

所以当你将UserControl拖到你的表单上时,你现在有了一个可以设置的属性NextFile。