У меня есть 2 формы - Form1 и Form2, Form1 имеют свойство ComboBox, Form2 имеет FormBorderStyle как FixedToolWindow. Мне нужно вызвать ComboBox из Form2, как мне это сделать?Вызов ComboBox из другой формы
ответ
Я вижу, что вопрос был изменен и значение значительно изменилось.
Простой факт заключается в том, что Form2 не должен даже знать, что ComboBox существует или даже тот, что Form1 существует в этом отношении. Правильный способ сделать это - для Form2 поднять событие, а Form1 - обработать это событие. Когда что-то должно произойти, Form2 вызывает событие, а Form1 получает доступ к собственному ComboBox.
Check this out. В части 3 объясняется, как это ДОЛЖНО быть сделано.
Вот относительно надуманный пример:
Form1:
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Form2 form2Instance;
private void button1_Click(object sender, EventArgs e)
{
// Check whether there is already a Form2 instance open.
if (this.form2Instance == null || this.form2Instance.IsDisposed)
{
// Create a new Form2 instance and handle the appropriate event.
this.form2Instance = new Form2();
this.form2Instance.SelectedValueChanged += form2Instance_SelectedValueChanged;
}
// Make sure the Form2 instance is displayed and active.
this.form2Instance.Show();
this.form2Instance.Activate();
}
private void form2Instance_SelectedValueChanged(object sender, EventArgs e)
{
// Update the ComboBox based on the selection in Form2.
this.comboBox1.SelectedIndex = this.form2Instance.SelectedValue;
}
}
}
Form2:
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
/// <summary>
/// Gets the value selected in the NumericUpDown as an int.
/// </summary>
public int SelectedValue { get { return Convert.ToInt32(this.numericUpDown1.Value); } }
/// <summary>
/// Raised when the value in the NumericUpDown changes.
/// </summary>
public event EventHandler SelectedValueChanged;
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
if (this.SelectedValueChanged != null)
{
// Notify any listeners that the selection has changed.
this.SelectedValueChanged(this, EventArgs.Empty);
}
}
}
}
Как вы можете видеть, Form2 не имеет никакого отношения к Form1 вообще так не нуждается знать или заботиться о том, существует ли форма 1.
Где находится свойство SelectedValueChanged? –
Обнаружили ошибку –
"Где свойство SelectedValueChanged?": Um, я добавил комментарий к этому свойству, чтобы объяснить, что он делает. – jmcilhinney
- 1. Вызов combobox из другой формы
- 2. Устранение неполадок combobox selectedindex из другой формы
- 3. Вызов MouseEventHandler из другой формы
- 4. Вызов функции из другой формы
- 5. Вызов класса из другой формы
- 6. Вызов подпрограммы из другой формы
- 7. Вызов кнопки из другой формы
- 8. Вызов основной формы из другой формы JavaNetbeans
- 9. Использование COMBOBOX из другой формы в C#
- 10. populate combobox со значениями из другой формы
- 11. Обновить элементы combobox из другой формы
- 12. C# Доступ к элементам comboBox формы из другой формы
- 13. Вызов метода Usercontrol из другой формы
- 14. Как определить вызов методов из другой формы?
- 15. Вызов метода UserControl из другой формы
- 16. Вызов кнопки в форме из другой формы
- 17. Вызов инструмента из другой формы в другую?
- 18. вызов функции сохранения из другой формы
- 19. Вызов формы к югу от другой формы
- 20. вызов одной дочерней формы из другой дочерней формы в C#
- 21. Как я могу перебирать combobox другой формы?
- 22. Как получить выделенный элемент combobox из другой формы?
- 23. Добавить элемент combobox из другой формы не будет работать
- 24. Как добавить элементы в ComboBox из другой формы в C#
- 25. LINQ XML Получение значения combobox из другой формы C#
- 26. обновление DataGridViewComboBoxColumn из другой формы
- 27. Вызов частных функций из combobox
- 28. Вызов макроса из выбора combobox
- 29. Получение списка combobox из другой книги
- 30. Изменение формы из другой формы
какой именно хотите сделать? «1. Вы хотите позвонить другому из существующей формы при нажатии кнопки ?, 2. вызвать другую форму, выбирая значение из combobox ?, 3. получить доступ к выпадающей форме другой формы из текущей формы?» – Shell
Нет, нет. Вы ничего не можете вызывать из любого ComboBox, потому что Microsoft написала код для класса ComboBox, и вы не можете его изменить. Вы на самом деле имеете в виду, что вам нужно отображать Form2, когда изменяется выбор в ComboBox в Form1? Если это так, вы просто используете тот же код, но в обработчике событий SelectedIndexChanged или SelectionChangeCommitted ComboBox вместо обработчика события Click кнопки. В любом случае, код является частью Form1. Если это не то, что вы имеете в виду, пожалуйста, предоставьте полное и понятное объяснение, что вы хотите – jmcilhinney
Okey. Но как отправить выбранные данные из Form2 в Form1? –