一个窗体叫Form1(主窗体)有一个button1和一个Textbox ,有如下代码 
private void button1_Click(object sender, EventArgs e) 

Form2 F2 = new Form2(); 
F2.Show(); 

public void SelextText11(int start, int length) 

textBox1.Select(start, length); 

另一个窗体Form2只有一个按钮,有如下代码 
private void button1_Click(object sender, EventArgs e) 

frmMain f1 = new frmMain(); 
f1.SelextText11(3, 3); 

为什么不能把Form1中的Textbox1中的字体选中变蓝色啊?

解决方案 »

  1.   

    frmMain f1 = new frmMain();
    名称不符
      

  2.   

    看看这个帖子2楼的回答
    http://topic.csdn.net/u/20081128/21/1ca1b74a-4be0-4173-8b95-b99692b33041.html
      

  3.   

    frmMain f1 = new frmMain();这是实例化一个新窗体。
      

  4.   

    你必须在Form2中获得Form1的引用,而不是创建Form1的一个实例,如下:
    public class Form2: Form
    {
       private Form mainForm;
       public Form2(Form mainForm)
      {
        //
        this.mainForm = mainForm;
      }
      // 调用f1.SelectText11()就没有问题
    }
      

  5.   

    按楼上的做法,在Form2中访问不到Form1中的方法啊
      

  6.   

    一个窗体叫Form1(主窗体)有一个button1和一个Textbox ,有如下代码
    private void button1_Click(object sender, EventArgs e) 

    Form2 F2 = new Form2(); 
    F2.Tag = this;
    F2.Show(); 

    public void SelextText11(int start, int length) 

    textBox1.Select(start, length); 

    另一个窗体Form2只有一个按钮,有如下代码 
    private void button1_Click(object sender, EventArgs e) 

    Form1 f1 = (Form1)this.Tag; 
    f1.SelextText11(3, 3); 
    } 按红字部分修改下就行了
      

  7.   

    顶,楼上说的不错,无非就是你不能New一个新实例出来,要想办法把Form1这个实例传个Form2,然后在Form2就能控制Form1中公开的东东了~~~