как я могу использовать событие EditValueChanged с lookupedit - PullRequest
0 голосов
/ 07 декабря 2018

Я создал элемент управления lyaout, который имеет lookupedit и texedit

                LayoutControl lc = new LayoutControl();
            lc.Dock = DockStyle.Top;
            LookUpEdit steelstandard = new LookUpEdit();
            steelstandard.Properties.TextEditStyle = TextEditStyles.DisableTextEditor;
            steelstandard.Properties.DataSource = assembly.GetSteelStandard();
            steelstandard.Properties.DisplayMember = "Norme";
            steelstandard.Properties.ValueMember = "id";
            steelstandard.Properties.ShowHeader = false;
            steelstandard.EditValue = 1;

            TextEdit tolerance = new TextEdit();
            tolerance.ReadOnly = true;
            lc.AddItem(Resources.standard, steelstandard).TextVisible = true;
            lc.AddItem(Resources.tolerance, tolerance).TextVisible = true;
            this.Controls.Add(lc);
            this.Dock = DockStyle.Fill;
            lc.BestFit();

, и я использую этот код для присвоения значения элементу управления textedit

int length = Convert.ToInt32(rowGridView1["Long mm"]);
            if (Convert.ToInt32(steelstandard.EditValue) == 1)
            {
                tolerance.Text = ((length / 5000) + 2).ToString();
            }
            else
            {
                tolerance.Text = ((length / 10000) + 2).ToString();
            }

код работает нормально, но когдазначение lookupedit не изменилось, ничего не произошло, я пытаюсь использовать этот код

private void steelstandard_EditValueChanged(object sender, EventArgs e)
    {
        tolerance.Refresh();
    }

, но все еще ничего
как я могу поймать, когда изменилось значение lookupedit, чтобы я мог присвоить новое значение textedit

1 Ответ

0 голосов
/ 12 декабря 2018

этот код решит мою проблему

        void steelstandard_EditValueChanged(object sender, EventArgs e)
    {
        int[] selectedRows = gridView1.GetSelectedRows();
        for (int i = 0; i < selectedRows.Length; i++)

        {
            DataRow rowGridView1 = (gridView1.GetRow(selectedRows[i]) as DataRowView).Row;
            int length = Convert.ToInt32(rowGridView1["Long mm"]);
            if (Convert.ToInt32(steelstandard.EditValue) == 1)
            {
                tolerance.Text = string.Empty;
                tolerance.Text = ((length / 5000) + 2).ToString();
            }
            else
            {

                tolerance.Text = string.Empty;
                tolerance.Text = ((length / 10000) + 2).ToString();
            }
        }
    }
    steelstandard.EditValueChanged += steelstandard_EditValueChanged;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...