У меня есть следующий тестовый код, я обновляю m_ClientTreeView
, позвонив по телефону createTreeView(TreeView tree)
, передав его. Но даже treeview - тип refrence, это изменение не отражается. Я проверил с ref, и он работает правильно.Проблема с обновлением элемента Treeview при передаче как параметр
namespace TestRefType
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
ClientGUI objCGUI = new ClientGUI();
createTreeView(objCGUI.m_ClientTreeView);
//createTreeView(ref objCGUI.m_ClientTreeView);
objCGUI.m_ClientTreeView.Dock = DockStyle.Fill;
}
private void createTreeView(TreeView tree)
{
tree = new TreeView();
tree.Visible = false;
}
}
public struct ClientGUI
{
public System.Windows.Forms.TreeView m_ClientTreeView;
}
}
В чем может быть причина?
Вы не можете ожидать, чтобы увидеть 'TreeView', который вы создали в коде. В настоящее время оно не добавлено ни в какую форму. Это просто объект в памяти, который является членом вашей структуры ClientGUI. –
Я имею в виду, когда я проверил objCGUI.m_ClientTreeView после вызова createTreeView, он все еще держит нулевое значение –
Это потому, что вы не внесли никаких изменений в 'm_ClientTreeView'. Если вы хотите присвоить ему новое значение, передайте его как 'ref'. –