我目前有一个工作程序,它显示来自我的网络摄像头的预览并使用 ISampleGrabberCB 界面。
使用SampleCB
我的程序将图像转换为位图,然后将图像处理为条形码,然后对其进行解码。当我使用 a 显示结果时,这非常有效,MessageBox
但是当我希望使用此结果在主窗体上编辑文本框时,我在启动程序时遇到了一些错误。
我正在尝试使用ISampleGrabberCB
界面中的以下代码更新我的文本框:
public int SampleCB(double sampletime, IMediaSample sample)
{
if (sample == null)
{
return -1;
}
try
{
int length = sample.GetActualDataLength();
IntPtr buffer;
BitmapData bitmapData = new BitmapData();
Form1 f1 = new Form1("", "", "");
if (sample.GetPointer(out buffer) == 0 && length > 0)
{
Bitmap bitmapOfFrame = new Bitmap(width, height, pitch, PixelFormat.Format24bppRgb, buffer);
}
方法changeTextBox1在我的主窗体中,如下:
public void changeTextBox1(string text)
{
textBox1.Text = text;
}
我得到的错误是 firstA device attached to the system in not functioning properly
然后no such supported interface
。这似乎只在我使用这Form1 f1 = new Form1("","","");
条线时发生。
所以正如我所说,如果我删除该行Form1 f1 = new Form1("","","");
并替换changeTextBox1(result.Text);
为MessageBox.Show(result.Text.ToString());
这个作品。
我将如何更新文本框而不是使用 MessageBox?