Firstoff我不得不说我是c#编程的新手。我的问题是,我有一个带有文本框和按钮的窗口,我想要完成的是将一些文本写入文本框,然后点击按钮我想将该文本保存到ukony中。 txt文件。但是使用下面的代码,点击按钮后没有任何反应。
func collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAt indexPath: IndexPath) -> CGSize {
let size: CGSize = keywordArray[indexPath.row].size(attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: 14.0)])
return CGSize(width: size.width + 45.0, height: keywordsCollectionView.bounds.size.height)
}
答案 0 :(得分:0)
不要使用窗口的新实例。使用当前的。要访问当前实例的文本块,您应该使用this
关键字:
private void button_Click(object sender, RoutedEventArgs e)
{
string writerfile = @"D:\Games\ukony.txt";
using (StreamWriter writer = new StreamWriter(writerfile))
{
writer.WriteLine(this.textBlock.Text);
writer.WriteLine(this.textBlock1.Text);
}
}
详细问题:用这一行:
Window1 a = new Window1();
您创建一个带有空控件的新窗口。这些与您在屏幕上看到的并且可能在其中键入的内容不同。
答案 1 :(得分:0)
不工作的原因是新创建的Window1
类实例。这与您实际看到的UI完全不同。因此,您无需在该位置创建实例,直接使用textBox名称来访问文本
private void button_Click(object sender, RoutedEventArgs e)
{
string writerfile = @"D:\Games\ukony.txt";
using (StreamWriter writer = new StreamWriter(writerfile))
{
writer.WriteLine(textBlock.Text);
writer.WriteLine(textBlock1.Text);
}
}
答案 2 :(得分:0)
为什么要使用StreamWriter
?我认为这样更容易:
private void button_Click(object sender, RoutedEventArgs e)
{
string writerfile = @"D:\Games\ukony.txt";
System.IO.File.WriteAllText(writerFile, this.textBlock.Text);
System.IO.File.AppendAllText(writerFile, this.textBlock1.Text);
}