C#可搜索,可定位的PictureBox

时间:2016-12-13 07:45:14

标签: c# search position picturebox

我一直在寻找这个问题,但还没有找到我想要的东西。

我希望能够在图片框中创建一个可以通过“搜索框”定位到某个点的图像。基本上,将像素的位置映射到某些短语或字母,然后移动图片框上的位置。

我尝试使用点设置位置,但这根本不会改变图片;计算下面代码后的位置固执地保持在(3,3)。

图片也很大(~3500 x~3000),需要滚动条才能完全查看。

这是我的代码

public Form1()
    {
        InitializeComponent();

        flowLayoutPanel1.AutoScroll = true;
        pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
        flowLayoutPanel1.Controls.Add(pictureBox1);
    }

private void button1_Click(object sender, EventArgs e)
    {
       if (textBox1.Text == "m")
          {
            pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
            pictureBox1.Image = Image.FromFile(@"C:\User\Desktop\map.jpg");
            pictureBox1.Location = new Point(700, 200);
            // ^ The location does not change and stays at (3,3)
            //  The picturebox is not set as locked
          }

我需要做一些与众不同的事吗?或者我的图片是不允许我更改位置的问题?

编辑由于以下帮助,我找到了解决方案。我不得不使用面板并将图片框放在其中。以下是我使用的代码。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        panel1.AutoScroll = true;
        panel1.Controls.Add(pictureBox1);
        pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
        pictureBox1.Image = Image.FromFile(@"C:\Desktop\image.jpg");
    }

    private void button1_Click(object sender, EventArgs e)
    {
        pictureBox1.Visible = true;
        label1.Visible = true;
        int Hvalue = panel1.HorizontalScroll.Value;
        label1.Text = Hvalue.ToString();

        label2.Visible = true;
        int Vvalue = panel1.VerticalScroll.Value;
        label2.Text = Vvalue.ToString();

        if (textBox1.Text == "m")
        {
            // these are just values that I put in
            panel1.HorizontalScroll.Value = 616;
            panel1.VerticalScroll.Value = 90;
        }
    }

0 个答案:

没有答案