2006-06 月份文章 顯示方式:簡文 | 列表

June 19,2006

加速 ListBox / ListView 加入新物件的方法

如果你有一堆的物件等著加入到 ListBox 或是 ListView 這些視窗元件時

記得先呼叫該元件的 SuspendLayout(),停止該物件的重繪更新

等到全部的物件都加入完成之後,再呼叫ResumLayout()

一口氣更新這些加入的物件

可以讓更新的動作快非常的多

另外,也可以使用AddRange來達到加速的效果


Posted by toki_kanno at 17:06回應(0)引用(0).Net Framework

June 6,2006

Don't call constructor in constructor

Code:

public ref class ABC{
public:
        ABC(){
                m_pTestString = "TEST";
                ABC(10);
        }

        ABC(int i){
                Console::WriteLine("i={0}, Object={1}", i, m_pTestString);
        }

        void Test(){
                Console::WriteLine(m_pTestString);
        }

private:
        String ^m_pTestString;
};

int main(array<:string ^> ^args)
{
        ABC ^t = gcnew ABC();
        Console::ReadKey();
        return 0;
}


Result:

i=10, Object=  

*m_pTestString 在ABC(int i)中被重新初始化,所以印不出值



Posted by toki_kanno at 21:42回應(0)引用(0).Net Framework

June 3,2006

將傳統structure pointer 加入 .NET collection 物件中管理

很簡單......就是IntPtr

Struct testStruct{

int a;

int b;

};

testStruct *ts = new testStruct;

ArrayList^ tList = gcnew ArrayList();

tList->Add(gcnew IntPtr(ts));

-------------------------------------------------

取出:

testStruct *ts;

ts = (IntPtr^)tList[0]->ToPointer();

ts->a = 10;

ts->b = 10;


Posted by toki_kanno at 21:34回應(0)引用(0).Net Framework
 [1]