Невозможно получить данные из выпадающего списка. - PullRequest
0 голосов
/ 15 сентября 2011

Я пытаюсь отобразить результат из условия if, основанного на параметре, выбранном в поле со списком окон.У меня возникают проблемы, когда условие if помещается в его собственный класс отдельно от формы и всегда просто возвращает значение else.Я сделал комбобокс публичным.Мой код выглядит следующим образом.

public void button1_Click(object sender, EventArgs e)
{
    xRayData xRayData1 = new xRayData();
    string shiftChangeValue;
    shiftChangeValue = xRayData1.shiftChange();
    label2.Text = shiftChangeValue;
}

public string shiftChange()
{
    frmSWChange frmSWChange1 = new frmSWChange();

    string shiftLetter;

    if (frmSWChange1.cbShift.Text == "Day")
    {
        shiftLetter = "D";
    }
    else if (frmSWChange1.cbShift.Text == "Night")
    {
        shiftLetter = "N";
    }
    else if (frmSWChange1.cbShift.Text == "Morning")
    {
        shiftLetter = "M";
    }
    else
    {
        shiftLetter = "ERROR";
    }


    return shiftLetter;
}

Ответы [ 3 ]

1 голос
/ 15 сентября 2011

Используйте Selected... для получения выбранного элемента в выпадающем списке

frmSWChange1.cbShift.SelectedItem // gets the binded item
frmSWChange1.cbShift.SelectedText // gets the display text of the selected item
frmSWChange1.cbShift.SelectedValue // gets the value of the selected item
0 голосов
/ 15 сентября 2011

frmSWChange.cs

namespace X_Ray
{
public partial class frmSWChange : Form
{

    public frmSWChange()
    {
        InitializeComponent();
       frmSWChange1
    }

    private void btnReturnToMainMenu_Click(object sender, EventArgs e)
    {
        new frmMainMenu().Show();
        this.Close();
    }

    public void button1_Click(object sender, EventArgs e)
    {

        string shiftChangeValue;
        label1.Text = mtxtScrapDate.Text;
        derpderp1 = cbShift.SelectedText;
        xRayData xRayData1 = new xRayData();

        shiftChangeValue = xRayData1.shiftChange();
        label2.Text = shiftChangeValue;
    }

}
}

xRayData.cs

namespace X_Ray
{
class xRayData
{
    #region Methods


    public string shiftChange()
    {
        frmSWChange frmSWChange1 = new frmSWChange();

        string shiftLetter;

        if (frmSWChange1.cbShift.SelectedText == "Day")
        {
            shiftLetter = "D";
        }
        else if (frmSWChange1.cbShift.SelectedText == "Night")
        {
            shiftLetter = "N";
        }
        else if (frmSWChange1.cbShift.SelectedText == "Morning")
        {
            shiftLetter = "M";
        }
        else
        {
            shiftLetter = "ERROR";
        }


        return shiftLetter;
    }

    #endregion
}
}
0 голосов
/ 15 сентября 2011

Посмотрите на эту строку в вашем методе

frmSWChange frmSWChange1 = new frmSWChange();

вы создаете новый экземпляр формы, и этот не имеет ничего общего с выбранным вами выбором, он не будет иметь никакого текставыбран в выпадающем списке.Что вам нужно, так это ссылка на текущий экземпляр формы, в которой производится выбор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...