c#将字符串从public Form1传递到Private void
我一直使用不可见的文本框在我的应用程序中传递数据。现在我想阻止这一切。所以我需要学习如何做到这一点。现在我遇到了将字符串从public Form1()传递到私有void richtextbox1keydown的问题。我不确定传递字符串的机制是如何工作的 这是我的密码:c#将字符串从public Form1传递到Private void,c#,string,C#,String,我一直使用不可见的文本框在我的应用程序中传递数据。现在我想阻止这一切。所以我需要学习如何做到这一点。现在我遇到了将字符串从public Form1()传递到私有void richtextbox1keydown的问题。我不确定传递字符串的机制是如何工作的 这是我的密码: public Form1(string file) { InitializeComponent(); StreamReader sr = new StreamReader(file); string fil
public Form1(string file)
{
InitializeComponent();
StreamReader sr = new StreamReader(file);
string filetext = sr.ReadToEnd();
richTextBox1.Text = filetext;
string TITLE = file.Split(new string[] { @"\" }, StringSplitOptions.None).Last();
this.Text = TITLE;
}
如果执行以下操作,字符串文件将包含类似的内容:“使用(应用程序)打开”:C:\Users\Administrator\Downloads\text.tyx
如果打开原始.exe文件,字符串将为空
如果字符串文件为空或不为空,下面是我想要捕捉的部分:
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.S && e.Control)
{
if (Form1(???) != "")
{
richTextBox1.SaveFile(Form1(???), RichTextBoxStreamType.PlainText);
}
}
}
我把“?”放在我不知道该做什么的地方。
请帮助在演示时,您的Form1有一个构造函数,该构造函数以字符串作为参数。 因此,实例化Form1的代码可能类似于:
Form1 form1 = new Form1("Some String");
form1.Show(); //or form1.ShowDialog();
为了在Form1代码中使用字符串文件,可以按如下方式为Form1类定义一个成员变量:
class Form1:Form
{
private string _file;
public Form1(string file)
{
InitializeComponent();
_file= file;
// Your code
}
}
现在_文件在Form1中一直为您所知,您可以使用它:
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.S && e.Control)
{
if (!string.IsNullOrEmpty(_file))
{
richTextBox1.SaveFile(_file, RichTextBoxStreamType.PlainText);
}
}
}
正如您所展示的,您的Form1有一个构造函数,该构造函数以字符串作为参数。 因此,实例化Form1的代码可能类似于:
Form1 form1 = new Form1("Some String");
form1.Show(); //or form1.ShowDialog();
为了在Form1代码中使用字符串文件,可以按如下方式为Form1类定义一个成员变量:
class Form1:Form
{
private string _file;
public Form1(string file)
{
InitializeComponent();
_file= file;
// Your code
}
}
现在_文件在Form1中一直为您所知,您可以使用它:
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.S && e.Control)
{
if (!string.IsNullOrEmpty(_file))
{
richTextBox1.SaveFile(_file, RichTextBoxStreamType.PlainText);
}
}
}
将文件名另存为成员变量,并在任何地方使用它。使用file.ReadAllText(\u文件名)读取文件:
将文件名另存为成员变量,并在任何地方使用它。使用file.ReadAllText(\u文件名)读取文件:
关于想要停止使用不可见文本框的部分,我建议您研究数据绑定和分离业务逻辑和表单逻辑
但是,如其他人所述,只需进行最小的更改,您就可以将状态(文件名)存储在Form1上,这样就可以在KeyDown事件中访问它。关于希望停止使用不可见文本框的部分,我建议您研究数据绑定和解耦业务逻辑和表单逻辑
但是,如其他人所述,只需进行少量更改,就可以存储状态(文件名)在Form1上,以便可以在按键下事件中访问它。文本框的形式是相同的还是不同的?为什么不将静态字符串用于保存当前保存在文本框上的值?相同的形式SajeetharanIs是相同形式或不同形式的文本框?为什么不将静态字符串用于保存当前保存的值按住文本框?同样的表单SajeetharanI试用了它,它崩溃了,因为它在中编辑时无法保存。但这并不重要。我使用一个消息框来确认字符串是否通过了,它确实通过了!“MessageBox.Show(_fileName);”非常感谢!总是添加try-catch块以避免未处理的异常并向用户显示错误。我知道。但我觉得这里没有必要。我试过了,它崩溃了,因为它在中编辑时无法保存。但这并不重要。我使用一个消息框来确认字符串是否通过了,它确实通过了!“MessageBox.Show(_fileName);”非常感谢!总是添加try-catch块以避免未处理的异常并向用户显示错误。我知道。但我不认为这是必要的。你有任何例子,链接或任何可以让我走上正轨的东西吗?因为这听起来像是我感兴趣的东西。你有什么例子、链接或任何能让我走上正轨的东西吗?因为这听起来像是我感兴趣的东西。