В конструкторе я сделал:Как получить текст элементов ComboBox каждого элемента?
ComboboxItem item1 = new ComboboxItem();
item1.Text = "Processor";
item1.Value = "Win32_Processor";
ComboboxItem item2 = new ComboboxItem();
item2.Text = "DiskDrive";
item2.Value = "Win32_DiskDrive";
cmbxOption.Items.Add(item1);
cmbxOption.Items.Add(item2);
ComboboxItem[] items = new ComboboxItem[cmbxOption.Items.Count];
for (int i = 0; i < items.Length; i++)
{
items[i] = new ComboboxItem();
items[i].Text = cmbxOption.GetItemText(i);
}
Но вместо того, чтобы делать новый экземпляр для каждого элемента и добавить товар в cmbxOption
Я хочу, чтобы сделать цикл, который добавит все элементы из cmbxOption
в ComboboxItem[]
,
В конструкторе form1 в ComboBox в пункты собственности у меня уже есть элементы в коллекции:
Win32_1394Controller
Win32_1394ControllerDevice
Win32_BaseBoard
Win32_Battery
Win32_BIOS
Win32_Bus
Win32_CDROMDrive
Win32_CIMLogicalDeviceCIMDataFile
Win32_DeviceBus
Win32_DeviceMemoryAddress
Win32_DeviceSettings
Win32_DisplayConfiguration
Win32_DisplayControllerConfiguration
Win32_DMAChannel
Win32_DriverVXD
Win32_FloppyController
Win32_FloppyDrive
Win32_HeatPipe
Win32_IDEController
Win32_IDEControllerDevice
Win32_InfraredDevice
Win32_IRQResource
Win32_Keyboard
Win32_MotherboardDevice
Win32_OnBoardDevice
Win32_PCMCIAController
Win32_PNPAllocatedResource
Win32_PnPDevice
Win32_PnPEntity
Win32_PointingDevice
Win32_PortableBattery
Win32_PortConnector
Win32_PortResource
Win32_POTSModem
Win32_POTSModemToSerialPort
Win32_PowerManagementEvent
Win32_Printer
Win32_PrinterConfiguration
Win32_PrinterController
Win32_PrinterDriverDll
Win32_PrinterSetting
Win32_PrinterShare
Win32_PrintJob
Win32_Processor
Win32_SCSIController
Win32_SCSIControllerDevice
Win32_SerialPort
Win32_SerialPortConfiguration
Win32_SerialPortSetting
Win32_SMBIOSMemory
Win32_SoundDevice
Win32_TemperatureProbe
Win32_USBController
Win32_USBControllerDevice
Win32_VideoConfiguration
Win32_VideoController
Win32_VideoSettings
Win32_VoltageProbe
Я хочу взять каждый элемент и создать для него ComboboxItem
Text и Value. Просто не делать это вручную.
Это класс я сделал:
public class ComboboxItem
{
public string Text { get; set; }
public object Value { get; set; }
public override string ToString()
{
return Text;
}
}
А потом это, как я использую его, когда выберите пункт:
private void cmbxOption_SelectedIndexChanged(object sender, EventArgs e)
{
InsertInfo((cmbxOption.SelectedItem as ComboboxItem).Value.ToString(), ref lstDisplayHardware, chkHardware.Checked);
}
Это работает, когда я делаю это руководство в конструктор, добавляющий каждый раз новый элемент в текст и значение cmbxOption, но вместо этого добавляя каждое руководство по элементам, я хочу использовать элементы, которые у меня уже есть в cmbxOption.
Как вы планируете получать значение, когда в компонентах ComboBox есть только текст? И что случилось с существующим кодом? – IllidanS4
IllidanS4 я еще не добавил строку значения внутри цикла. Сначала я проверил текст. Проблема в этом коде заключается в том, что я получаю как Text число 0 вместо получения cmbxOption.GetItemText (i) Текст, который я получаю, равен 0, так как i = 0 в первый раз. Но то, что я хочу получить, является Item Text/Name, например, первый элемент text/name - это Win32_1394Controller, но я получаю 0. –
IllidanS4 я добавил недостающий код, я забыл добавить класс, который я использую, и выбранное событие, и объяснил, что я хочу делать. –