Двойное окно фокуса со всеми элементами с опцией редактирования - PullRequest
0 голосов
/ 01 марта 2019

Мне нужна кнопка создания, спасибо за то, что мы можем продублировать форму фокуса со всеми элементами, которые находятся внутри и одинаково представлены в новом окне.
Более того, мне нужно изменить значение, например, в моем PictureBox для скопированного окна.
Может быть, кто-нибудь объяснит мне, как это сделать, используя C #?

Например, это форма FormResult, и мне нужно ее дублировать:

var mainForm = new APOForm();

// Generate PictureBox
pictureBox.Image = Image.FromFile(mainForm.getMyPath());
pictureBox.SizeMode = PictureBoxSizeMode.Zoom;
pictureBox.Show();

// Change image for bitmap array
Bitmap bm = (Bitmap)pictureBox.Image;

// Create table for pixel value for histogram
int[] valueHistogram = new int[MAX_VALUE+1];

for(int i=0; i<MAX_VALUE; ++i)
{
    valueHistogram[i] = 0;
}

for (int x=0; x<bm.Width; ++x)
{
    for(int y=0; y<bm.Height; ++y)
    {
        Color c = bm.GetPixel(x, y);
        valueHistogram[c.R] += 1;
    }
}

// Generate histogram
histogram.ChartAreas[0].AxisX.Minimum = MIN_VALUE;
histogram.ChartAreas[0].AxisX.Maximum = MAX_VALUE;
histogram.ChartAreas[0].AxisY.Minimum = 0;
histogram.Series.Clear();
histogram.Series.Add("S");
histogram.Series["S"].IsVisibleInLegend = false;

int maxAxisY = 0;

for (int i=0; i<256; ++i)
{
    if(maxAxisY < valueHistogram[i]) { maxAxisY = valueHistogram[i];  }

    histogram.Series["S"].Points.AddXY(i, valueHistogram[i]);  
}

histogram.ChartAreas[0].AxisY.Maximum = maxAxisY;
histogram.Show();

1 Ответ

0 голосов
/ 01 марта 2019

Если я правильно понял вашу проблему, вы хотите показать вторую форму, которая «идентична» той форме, которую просматривает пользователь, но с другим значением в окне для картинок, верно?

Вы можете сделатьчтобы решить эту проблему:


public partial class Form1 : Form
{

    public string changeTextBoxValue { set { textBox1.Text = value; } }

    public Form1()
    {
        InitializeComponent();
    }

    private void btnCreateCopiedWindow_Click(object sender, EventArgs e)
    {
        Form1 secondForm = new Form1();
        secondForm.changeTextBoxValue = "Different value for second form";

        secondForm.Show();
    }
}

Вместо того, чтобы использовать TextBox, у вас будет картинка-папка, и вы измените изображение, используя свойство, но идея та же.Вы создаете ту же форму и изменяете нужные значения, а затем показываете ее пользователю.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...