Мне нужно передать растровое изображение или изображение в пользовательский элемент управления, а затем передать его обратно в приложение winform
У меня есть приложение, написанное на vb .net, которое вызывает usercontrol, который я написал на C#. Здесь нет никаких проблем. Мне нужно отправить usercontrol изображение, растровое изображение или поток памяти. Я перепробовал их все.
Я также хотел бы иметь возможность отлаживать usercontrol во время запуска приложения winform. Я делал это все время и забыл, как это делается. Я искал в интернете, и я получаю много колкостей. Я помню, что это было довольно прямолинейно, но забыл, как это делается.
Где # % % $ $ $ - это ссылка для загрузки примера?
Что я уже пробовал:
Прилагается небольшое тестовое приложение и пользовательский элемент управления.
В файла testapp запрашивает изображение с помощью стандартного диалогового окна, а затем вызывает элемент управления UserControl, струны проходят штрафом в размере от пользователя контроль приложений WinForm, но я не могу шов, чтобы передать изображение из winform один раз загруженной в PictureBox на winform, чтобы элемент управления PictureBox в пользовательских элементов управления. Мой настоящий usercontrol-это черный ящик. Мне не нужно видеть изображения, просто передать их, обработать и отправить обратно.
Вот основной код из пользовательского элемента управления:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; namespace MyUserControl { public partial class UserControl1: UserControl { private MemoryStream mImageIn; private string mStrOut; public MemoryStream PicIn { get { return mImageIn; } set { mImageIn = value; } } public string strPicOut { get { return mStrOut; } set { mStrOut = value; } } public UserControl1() { InitializeComponent(); } private void UserControl1_Load(object sender, EventArgs e) { } public new void Update() { // public static System.Drawing.Image FromStream(System.IO.Stream stream); Image img = Image.FromStream(PicIn); pictureBox1.Image = img; MessageBox.Show("Hello There"); strPicOut = "Whats Not Up"; } } }
Вот код из приложения Windows form:
Imports MyUserControl Imports System.Drawing.Imaging Imports System.IO Public Class Form1 Private UI1 As New UserControl1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim strfilename As String OpenFileDialog1.Filter = "All Images Files (*.png;*.jpeg;*.gif;*.jpg;*.bmp;*.tiff;*.tif _ | *.png;*.jpeg;*.gif;*.jpg;*.bmp;*.tiff;" & "*.tif" Dim OKDK As Boolean = OpenFileDialog1.ShowDialog If OKDK Then strfilename = OpenFileDialog1.FileName PictureBox1.Image = Image.FromFile(strfilename) Dim bmp As Bitmap = PictureBox1.Image Dim Picstream As MemoryStream = New MemoryStream bmp.Save(Picstream, ImageFormat.Bmp) UI1.PicIn = Picstream UI1.Update() Label2.Text = UI1.strPicOut End If Cursor = Cursors.Default End Sub Private Sub UserControl11_Load(sender As Object, e As EventArgs) Handles ImgTest.Load End Sub End Class
Любая помощь будет очень признательна. Это приложение должно быть в пятницу, и я боролся со всеми видами глупостей 24 часа в сутки в течение последних нескольких недель. Полностью в стрессе.
Ларри