我想知道是否有人可以帮助我。我希望能让我的程序让用户只能从文本文档中读取某段代码。但是我希望将它放在按钮后面,以便可以打开和关闭它。我已经尝试过不同的方式来做这件事,但没有任何一点点差别。
这就是我的代码目前的立场。
namespace filestream
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private string Read(string file)
{
StreamReader reader = new StreamReader(file);
string data = reader.ReadToEnd();
reader.Close();
return data;
}
private void btn1_Click(object sender, EventArgs e)
{
textBox1.Text = "";
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
string data = Read(openFileDialog1.FileName);
textBox1.Text = data;
}
else
{
//do nothing
}
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}
我在这方面很新,所以任何帮助都将非常感激。
答案 0 :(得分:2)
据我所知,你应该看到它应该有效。我唯一能想到的原因是你的按钮连接到button1_Click例程而不是btn1_Click例程。如果当你点击按钮而它没有做任何事情时,这是我能看到的唯一原因。代码看起来像是为了要求用户选择一个文件,然后读取整个文件并将其放在文本框中。
答案 1 :(得分:1)
如果您可以使用.Net 3.5和LINQ,这是一个选项......
public static class Tools
{
public static IEnumerable<string> ReadAsLines(this string filename)
{
using (var reader = new StreamReader(filename))
while (!reader.EndOfStream)
yield return reader.ReadLine();
}
}
class Program
{
static void Main(string[] args)
{
var lines = "myfile.txt".ReadAsLines()
// you could even add a filter query/formatting
.Skip(100).Take(10) //do paging here
.ToArray();
}
}
...扩展精神错乱以显示过滤,解析和格式化......
public static class Tools
{
public static void Foreach<T>(this IEnumerable<T> input, Action<T> action)
{
foreach (var item in input)
action(item);
}
}
class Program
{
static void Main(string[] args)
{
// the line below is standing in for your text file.
// this could be replaced by anything that returns IEnumerable<string>
var data = new [] { "A 1 3", "B 2 5", "A 1 6", "G 2 7" };
var format = "Alt: {1} BpM: {2} Type: {0}";
var lines = from line in data
where line.StartsWith("A")
let parts = line.Split(' ')
let formatted = string.Format(format, parts)
select formatted;
var page = lines.Skip(1).Take(2);
page.Foreach(Console.WriteLine);
// at this point the following will be written to the console
//
// Alt: 1 BpM: 6 Type: A
//
}
}
答案 2 :(得分:0)
您是否尝试过btn1_click
的内容并将其放入button1_click
?有时它对我有用。