実行時にリストを作成して後で修正することには苦労しています。プログラムは、createlist()関数でListViewを作成し、別の関数で変更しようとしています。任意の助けいただければ幸い誰かが将来的にこの問題を回避する方法を私に言うことができる場合、私は好む:) コードを抽出します。別の関数で関数によって作成されたオブジェクトを変更する方法C#
public void createlist()
{
ListView MainList = new ListView();
DisplayPanel.Controls.Add(MainList);
MainList.View = View.Details;
MainList.GridLines = true;
MainList.Name = "MainList";
MainList.Size = DisplayPanel.Size;
int s1 = DisplayPanel.Size.Height;
int s2 = DisplayPanel.Size.Width;
MainList.Anchor = (AnchorStyles.Bottom | AnchorStyles.Right | AnchorStyles.Left | AnchorStyles.Top);
MainList.Columns.Add("ProductName", 100);
MainList.Columns.Add("ProductName2", 100);
MainList.Columns.Add("ProductName3", 100);
MainList.Columns.Add("ProductName4", 100);
}
private void button1_Click(object sender, EventArgs e)
{
createlist(); //Calls function and creates the ListView
ListViewItem Source = new ListViewItem("Source", 0);
Source.Checked = true;
Source.SubItems.Add("7");
Source.SubItems.Add("8");
Source.SubItems.Add("9");
MainList.Items.AddRange(new ListViewItem[] {Source});
}
エラー
: エラーCS0103名は「MainList」は、現在では存在しませんがあなたのcreateListのコンテキスト事前に
感謝:)
'MainList'は' createlist'でしか有効ではないので、コンパイルエラーが発生しました。(BTW:コンパイルエラーは簡単に修正できますが、いくつかのC#ドキュメントを読んでください) –
'DisplayPanel.Controls'クラスレベルのフィールドにすることができます。 –
学ぶ必要がある概念は、[Scope](https://msdn.microsoft.com/en-us/library/ms973875.aspx)と呼ばれます。 – mason