を渡すとき、私はいくつかの詳細を処理し、メインフォームを更新するために、新しいフォームにパブリック関数を渡すしようとしているが、このことについて、この面白いが、それが起こるdoesntのあるeh.TextBox1.Text = dt.Columns[e.ColumnIndex].ToString();
とNullReferenceExceptionアクション
このライン上とNullReferenceExceptionを取得イアいますここで>EditHeader eh = new EditHeader(this.UpdateHeader);
Form1の
に関連するコードです - 私は、デリゲート(左手側)コードdoesntのクラッシュ(しかし、明らかにdoesntの仕事)EditHeader eh = new EditHeader();
を取る場合はそれまでは、私は、デリゲートを含めます0
private void OnColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) {
EditHeader eh = new EditHeader(this.UpdateHeader);
eh.TextBox1.Text = dt.Columns[e.ColumnIndex].ToString();
eh.TextBox2.Text = e.ColumnIndex.ToString();
eh.Show();
}
private void UpdateHeader(string indexVal) {
string[] array = indexVal.Split(',');
int index = int.Parse(array[0]);
dt.Columns[index].ColumnName = array[1];
}
そしてここEditHeader(またはフォーム2)である
private readonly Action<string> _UpdateHeader;
public EditHeader() {
InitializeComponent();
}
private void EditHeader_Load(object sender, EventArgs e) {
}
public EditHeader(Action<string> updateHeader) {
_UpdateHeader = updateHeader;
}
public TextBox TextBox1 {
get {
return textBox1;
}
set {
}
}
public TextBox TextBox2 {
get {
return textBox2;
}
set {
}
}
private void button1_Click(object sender, EventArgs e) {
int index = int.Parse(textBox2.Text);
string indexVal = index.ToString() + "," + textBox1.Text;
_UpdateHeader(indexVal);
this.Close();
}