请问如何将一个string类型的参数传递给OnPaint函数呢?谢谢大家!
程序的一部分如下:
private void fileListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int Index = fileListBox1.SelectedIndex;
string filename = fileListBox1.get_Items(Index);
}
protected override void OnPaint(PaintEventArgs e)
{
StreamReader sr = new StreamReader(filename, Encoding.Default);
……………………
}
就是想把string filename = fileListBox1.get_Items(Index)里面的filename传递给OnPaint里面的new StreamReader(filename, Encoding.Default)中的filename。
谢谢大家:)
------解决方案-------------------- 直接
protected override void OnPaint(PaintEventArgs e)
{
int Index = fileListBox1.SelectedIndex;
string filename = fileListBox1.get_Items(Index);
StreamReader sr = new StreamReader(filename, Encoding.Default);
……………………
}
------解决方案--------------------确认你的逻辑。
首先是读取文件用于呈现。
读取文件监控文本框的变化。
那么设计如下:
一个读取文件的方法,监听文本框的变化,然后将文件内容读出,存入某个字段中,重绘自己,将在字段中的文件内容绘制。
------解决方案--------------------private string m_filename = String.Empty;
private string FileName
{
set{
if (m_filename != value)
{
m_filename = value;
OnFileNameChanged();
}
}
}
protected void OnFileNameChanged()
{
this.Invalidate();
}
private void fileListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int Index = fileListBox1.SelectedIndex;
FileName = fileListBox1.get_Items(Index);
}
protected override void OnPaint(PaintEventArgs e)
{
if (m_filename != null && m_filename == String.Empty)
{
StreamReader sr = new StreamReader(filename, Encoding.Default);
……………………
}
}