目的是从INI加载combobox.selectedindex的保存值,并在下次加载应用程序时使用它。但是,它将返回默认值0。
INI文件存储来自2个摄像头的3个值,即“图像叠加”,“视频叠加”和视频“分辨率”,不起作用的是始终加载0的视频“分辨率”。
此代码用于保存INI值: -
switch (properties)
{
case 1:
(..........)
case 3:
cam1_Resolution = cb_resolutionCam1.SelectedIndex.ToString();
ini.WriteValue("Camera 1", "Resolution", cam1_Resolution);
break;
}
此代码用于加载不起作用的INI值: -
cam2_Resolution = ini.ReadValue("Camera 2", "Resolution", cam2_Resolution);
if (cam2_Resolution == "")
{
cb_resolutionCam2.SelectedIndex = 0;
}
else
{
int no = int.Parse(cam2_Resolution);
cb_resolutionCam2.SelectedIndex = no;
textBox2.Text = no.ToString();
}
我试过转换方法也无法加载值: -
cam2_Resolution = ini.ReadValue("Camera 2", "Resolution", cam2_Resolution);
if (cam2_Resolution == "")
{
cb_resolutionCam2.SelectedIndex = 0;
}
else
{
int no = Convert.Uint32(cam2_Resolution);
cb_resolutionCam2.SelectedIndex = no;
textBox2.Text = no.ToString();
}
当我尝试直接分配给号码来检查我的其他代码是否会干扰过程时,它正在工作但它没有保存在INI文件中。
cb_resolutionCam2.SelectedIndex = 3;
我无法使用combobox.selectedtext将其加载回组合框,因为解析是从AFORGE.NET库拆分数组的结果: -
switch (camNo)
{
case 1:
{
cb_resolutionCam1.Items.Clear();
videoCapabilities_cam1 = videoSource.VideoCapabilities;
foreach (VideoCapabilities capability in videoCapabilities_cam1)
{
string item = string.Format("{0} x {1}", capability.FrameSize.Width, capability.FrameSize.Height);
if (!cb_resolutionCam1.Items.Contains(item))
{
cb_resolutionCam1.Items.Add(item);
}
}
if (videoCapabilities_cam1.Length == 0)
{
cb_resolutionCam1.Items.Add("Not Supported");
}
cb_resolutionCam1.SelectedIndex = 0;
break;
}
是否有任何方法可以使Combobox.SelectedIndex工作,因为它更容易或另一种解决方法?