读书人

请教怎么将一个string类型的参数传递给

发布时间: 2012-01-09 21:05:42 作者: rapoo

请问如何将一个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);
……………………
}
}

读书人网 >C#

热点推荐