#c# #winforms #listbox
Вопрос:
Основная Форма:
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, System.EventArgs e)
{
listBox1.Items.Add("A");
listBox1.Items.Add(new SimpleForm());
}
}
}
Форма для добавления в список:
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class SimpleForm : Form
{
public SimpleForm()
{
InitializeComponent();
}
public override string ToString()
{
return "SimpleForm";
}
}
}
Элемент списка 2 пуст вместо «SimpleForm». Любые другие объекты используют функцию toString() без проблем.
Это мой первый вопрос, так что будьте джентльменами. Stackoverflow помогал мне так много раз за эти годы.
Комментарии:
1. Извините, но ваш вопрос неясен. Можете ли вы быть более конкретным и предоставить более подробную информацию?
2. Не может размножаться. Ваш код, проверенный здесь, отображает «SimpleForm» для второго элемента
3. @zaggler, как упоминал Стив, я не могу воспроизвести проблему.
4. В более новых версиях .Net Framework произошли кардинальные изменения. Вы должны установить
FormattingEnabled = false
, иначе вернется внутренний метод Add ()GetItemText([new Item])
, который, конечно же, является пустой строкой. Когда свойству установлено значениеfalse
,[Item].ToString()
оно возвращается вместо этого.5.@Стив private int NativeAdd(элемент объекта) => Контроль списка.GetItemText()