首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请教怎么将一个string类型的参数传递给OnPaint函数呢?多谢大家

2012-01-09 
请问如何将一个string类型的参数传递给OnPaint函数呢?谢谢大家!程序的一部分如下:privatevoidfileListBox1

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

热点排行