に表示されている画像があります
picShowPicture.Image = Image.FromFile(textbox1.Text)
メイン画面に画像が表示されている瞬間、ユーザーがデータベースから画像を選択すると、新しいウィンドウで開きますか?
これはどのように行われますか?
Designer で新しいフォームを作成し、その中でPictureBoxを選択します。たとえば、特別なメソッドを作成します
public void SetPicture(Image image)
これにより、画像が PictureBox に設定されます。
ピクチャーコール選択時:
YourForm form = new YourForm();
form.SetPicture(Image.FromFile(textbox1.Text));
form.ShowDialog();
または、新しいフォームを動的に作成することもできます:
Form form = new Form();
PictureBox pictureBox = new PictureBox();
pictureBox.Dock = DockStyle.Fill;
pictureBox.Image = Image.FromFile(textbox1.Text);
pictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
form.Controls.Add(pictureBox);
form.ShowDialog();
フォームをアプリケーションに追加し、その上に PictureBox を配置します。PictureBox の ID が「pictureBox1」であるとします。次に、そのフォームにパブリック プロパティを作成して、次のように picutre ボックスにアクセスします。
public partial class ShowPictureForm : Form
{
public PictureBox ImagePictureBox { get { return this.pictureBox1; } }
public ShowPictureForm()
{
InitializeComponent();
}
}
次に、次のような新しいフォームを表示します。
ShowPictureForm spf = new ShowPictureForm();
spf.ImagePictureBox.Image.FromFile(textbox1.Text)
spf.ShowDialog();
「データベースから画像を選択する」ということは、BLOB を (逆) シリアル化しているという意味ではなく、単にコードで画像を新しいウィンドウに表示させたいという意味ではないと仮定します。さらに、「picImageViewerOnForm2」という画像ビューアを使用して「Form2」というプロジェクトで作成された 2 番目のフォームがあると仮定します。
var newImage = Image.FromFile(textbox1.Text);
var newForm = new Form2();
newForm.picImageViewerOnForm2.Image = newImage;
newForm.Show();
「ShowImageWindow」という名前の新しい Windows フォームをプロジェクトに追加します。ウィンドウにピクチャボックスを追加し、次のコードを追加します。
public Image ImageToShow { get; set; }
public ShowImageWindow()
{
InitializeComponent();
}
private void ShowImageWindow_Load(object sender, EventArgs e)
{
pictureBox1.Image = ImageToShow;
}
次に、次のようにウィンドウを作成して表示します。
Image img = Image.FromFile(textBox1.Text);
ShowImageWindow frm = new ShowImageWindow();
frm.ImageToShow = img;
frm.ShowDialog();
frm.Dispose();
イメージ パスをコンストラクターとして受け入れる新しいフォーム (System.Windows.Forms.Form から派生した新しい型) を作成します。
新しいフォームが ImageForm だとします。このフォーム内に PictureBox を作成します。
関数 ShowImageWindow (またはメイン フォームで同様のもの) で、次のように呼び出します。
ImageForm imageForm = new ImageForm(textbox1.Text)
imageForm.ShowDialog()
ImageForm の ctor で、Image を ImageForm 内の picturebox コントロールに設定します。
public ImageForm(String imagePath)
{
pictureBox1.Image = Image.FromFile(imagePath);
}
ピクチャ ボックスのみを含む新しいフォームを作成します。
次に、そのフォームオブジェクトを形成するときに、画像をパラメーターとして渡し(もちろん、フォームのパラメーター化されたコンストラクターを作成する必要があります)、その画像をグローバル画像変数に渡します。
Form_Load で、そのグローバル イメージ変数をイメージ コントロール イメージとして設定します。