如何直接在另一个按钮点击事件中读取已经打开的文件(即按钮点击时没有打开文件对话框)

时间:2016-04-13 05:55:22

标签: c# c#-4.0

        void OpenWithDialog()
        {
            var ofd = new OpenFileDialog();

            ofd.Filter = "Triangle polygon file|*.poly";

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                OpenPolyFile(ofd.FileName);
            }
        }

        void OpenPolyFile(string file)
        {
            var geometry = TriangleNet.IO.FileReader.ReadPolyFile(file);
            // ...
        }

        private void button1_Click(object sender, EventArgs e)
        {

        }
  

如何直接点击button1中的文件?

2 个答案:

答案 0 :(得分:0)

你想要的是除了OpenPolyFile()之外,你可以在其他范围内访问你的几何对象。因此,您可以简单地使两个方法都可以访问几何声明,例如,在

后面的表单代码中声明它
// class scoped variables
       [ThePolyFileType] (pick the right one here :) geometry = null;

        void OpenWithDialog()
        {
            var ofd = new OpenFileDialog();

            ofd.Filter = "Triangle polygon file|*.poly";

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                OpenPolyFile(ofd.FileName);
            }
        }

        void OpenPolyFile(string file)
        {
            geometry = TriangleNet.IO.FileReader.ReadPolyFile(file);
            // ...
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (geometry != null)
            {
              //do your stuff
            }
        }

答案 1 :(得分:0)

  

如何在另一个按钮单击事件中读取已打开的文件   直接。(即按钮点击时没有打开文件对话框)

我不太确定你为什么要阅读它两次,但是如果有这个要求,请在全局范围内使选择 filename可用并使用它。

private string filename;

void OpenWithDialog()
{
    var ofd = new OpenFileDialog();

    ofd.Filter = "Triangle polygon file|*.poly";

    if (ofd.ShowDialog() == DialogResult.OK)
    {
        OpenPolyFile(ofd.FileName);
        filename = ofd.FileName
    }
}

现在您已在button_clcik中打开了文件名,您可以使用此文件并再次阅读。

private void button1_Click(object sender, EventArgs e)
{
    // now you can read the file.
    //File.ReadAllText(filename); //OR

     TriangleNet.IO.FileReader.ReadPolyFile(file); 
}