我在项目中创建了一个用户控件:右键单击项目名称>添加>用户控制。
然后在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
我该怎么做?
答案 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。