c# – 使用两种形式进行缩放
作者:互联网
我的项目中有多个表单. Form1包含一个显示jpeg的pictureBox.在Form2中,我有一个trackBar,我想控制Form1中图像的缩放级别.为了简单起见,我只需要2或3个缩放级别.我在Designer视图中将pictureBox设置为public.但是,当我尝试在Form2中引用pictureBox时,它表示它不存在.下面是我用来在Form1中调用Form2的代码
Form2 dataWindow = new Form2();
dataWindow.ShowDialog();
总之,我需要帮助的两件事是:
1)从单独的表单更改pictureBox1的属性.
2)创建简单的缩放公式.
解决方法:
1)将form1引用传递给form2的构造函数:
Form2 dataWindow = new Form2(this);
dataWindow.Show();
…
private form1 as Form1;
public Form2(Form1 frm1)
{
form1 = frm1;
}
然后在Form2s TrackBar_Scroll事件中通过私有成员变量form1引用PictureBox:form1.PictureBox1.Property
2)Magnify your pictures using a PictureBox so that you can zoom with the Mouse Wheel
更好的方式是事件:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var form2 = new Form2();
form2.TrackBarMoved += new Action<int>(ZoomPictureBox);
form2.ShowDialog();
form2.TrackBarMoved -= new Action<int>(ZoomPictureBox);
}
private void ZoomPictureBox(int zoomFactor)
{
pictureBox1.Width = 100 * zoomFactor;
pictureBox1.Height = 100 * zoomFactor;
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public event Action<int> TrackBarMoved;
private void trackBar1_Scroll(object sender, EventArgs e)
{
TrackBarMoved(trackBar1.Value);
}
}
标签:c,zoom,picturebox,trackbar 来源: https://codeday.me/bug/20190620/1246749.html