在第一个From1中代码如下
Modify pass = new Modify();ListViewItem li = this.ListAll.SelectedItems[0];
pass.SpendTextBox.Text=ListAll.Items[li.Index].SubItems[1].Text;
pass.comboBox1.Text = ListAll.Items[li.Index].SubItems[2].Text;
pass.SpendCount.Text = ListAll.Items[li.Index].SubItems[3].Text;
pass.ShowDialog();
if (pass.ShowDialog(this)==DialogResult.OK)
{
ListAll.Items[li.Index].SubItems[1].Text = pass.SpendTextBox.Text;
ListAll.Items[li.Index].SubItems[2].Text = pass.comboBox1.Text;
ListAll.Items[li.Index].SubItems[3].Text = pass.SpendCount.Text;
}
第二个Form2中
我直接一个button2的DialogResult设置为OK现在数据能从From1传到Form2中,等向回传的时候就必须按2次button数据才会传回Form1中 ,--,很奇怪,有人能解释一下吗?
Modify pass = new Modify();ListViewItem li = this.ListAll.SelectedItems[0];
pass.SpendTextBox.Text=ListAll.Items[li.Index].SubItems[1].Text;
pass.comboBox1.Text = ListAll.Items[li.Index].SubItems[2].Text;
pass.SpendCount.Text = ListAll.Items[li.Index].SubItems[3].Text;
pass.ShowDialog();
if (pass.ShowDialog(this)==DialogResult.OK)
{
ListAll.Items[li.Index].SubItems[1].Text = pass.SpendTextBox.Text;
ListAll.Items[li.Index].SubItems[2].Text = pass.comboBox1.Text;
ListAll.Items[li.Index].SubItems[3].Text = pass.SpendCount.Text;
}
第二个Form2中
我直接一个button2的DialogResult设置为OK现在数据能从From1传到Form2中,等向回传的时候就必须按2次button数据才会传回Form1中 ,--,很奇怪,有人能解释一下吗?
if (pass.ShowDialog(this)==DialogResult.OK)
这里整了两个模态对话框出来。。还有应该用pass.Show()不要用showDialog()
f (pass.ShowDialog(this)==DialogResult.OK) 这句话是我们书上的原话,我也看不太懂
那我怎么才能把两个模态改为1个?忘不吝赐教
把这句去掉.
if (pass.DialogResult == DialogResult.OK)
{
}
pass.close();
http://www.cnblogs.com/virusswb/articles/1206899.html
pass.SpendTextBox.Text=ListAll.Items[li.Index].SubItems[1].Text;
pass.comboBox1.Text = ListAll.Items[li.Index].SubItems[2].Text;
pass.SpendCount.Text = ListAll.Items[li.Index].SubItems[3].Text;
pass.Show();
newChildForm.SetTools+=new childForm.SetToolsEventHandler(SetControlText);
private void SetControlText(object sender,FFEventArgs e)
{
ListAll.Items[li.Index].SubItems[1].Text = e.xxx;
ListAll.Items[li.Index].SubItems[2].Text = e.yyy;
ListAll.Items[li.Index].SubItems[3].Text = e.zzz;
}上面是form1中的代码下面是form2
至于从第二个里面传到第一个可以用委托。public class FFEventArgs:EventArgs
{
public FFEventArgs(string x,string y,string z)
{
xxx=x;
yyy=y;
zzz=z;
}
//把xxx,yyy,zzz封装为属性
}
private button2_click(object sender,EventArgs e)
{
SetToolsEventHandler temp = SetTools;
if (temp != null)
{
temp(null,new FFEventArgs(pass.SpendTextBox.Text,pass.comboBox1.Text,pass.SpendCount.Text));
}
}
public delegate void SetForm1EventHandler(object sender,EventArgs e);
public event SetForm1EventHandler SetForm1;代码有点乱手写的你自己整理下