我正在嘗試構建類似電子郵件客戶端的東西。 在傳入的電子郵件列表(列表高,窄), 我想顯示發件人,主題和日期,但沒有任何水平滾動在一行。 例如,左上角的發件人,右上角的日期和第二行的主題。Listview with preview
我在Outlook中看到這種列表,並且在iPhone的郵箱中。
我搜索了一下,看看是否有其他人建立了這樣的列表,但找不到任何。
我使用C#2.0 for Windows,不是 WPF。
任何建議,非常感謝。
謝謝你的時間。
-Rakib
我正在嘗試構建類似電子郵件客戶端的東西。 在傳入的電子郵件列表(列表高,窄), 我想顯示發件人,主題和日期,但沒有任何水平滾動在一行。 例如,左上角的發件人,右上角的日期和第二行的主題。Listview with preview
我在Outlook中看到這種列表,並且在iPhone的郵箱中。
我搜索了一下,看看是否有其他人建立了這樣的列表,但找不到任何。
我使用C#2.0 for Windows,不是 WPF。
任何建議,非常感謝。
謝謝你的時間。
-Rakib
我會建議使用Better ListView。還有免費軟件變種Better ListView Express。
Better ListView修復了所有原始的.NET ListView錯誤,您將永遠不需要解決它的缺點。而最好的事情是更好的ListView是100%託管代碼全部重寫,不一個ListView包裝:
達到你想要什麼,你都需要深入佈局控制,如TableLayoutPanel
,Panel
,等等,那麼你就需要設計自己的UserControl
,將顯示一個電子郵件項目(EmailItemControl
)。
一旦你完成了,你會有一個容器來容納這些物品。爲此,您可以使用FlowLayoutPanel。創建一個新的UserControl(EMailListControl
),爲其添加一個FlowLayoutPanel
(flowLayoutPanel1
)並將其Dock模式設置爲Fill。
這是一個基本的實現EMailListControl的:
public partial class EMailListControl : UserControl
{
public EMailListControl()
{
InitializeComponent();
flowLayoutPanel1.FlowDirection = FlowDirection.TopDown;
flowLayoutPanel1.WrapContents = false;
flowLayoutPanel1.AutoScroll = true;
flowLayoutPanel1.Resize += new EventHandler(flowLayoutPanel1_Resize);
}
private void flowLayoutPanel1_Resize(object sender, EventArgs e)
{
foreach (Control control in flowLayoutPanel1.Controls)
{
UpdateControlWidth(control);
}
}
private void UpdateControlWidth(Control control)
{
control.Width = flowLayoutPanel1.Width - (flowLayoutPanel1.VerticalScroll.Visible ? SystemInformation.VerticalScrollBarWidth : 0);
}
public void AddEmailItem(EmailItemControl control)
{
UpdateControlWidth(control);
flowLayoutPanel1.Controls.Add(control);
}
}
嗨,謝謝你的回覆。但我想要這樣的東西。 http://www.askdavetaylor.com/0-blog-pics/iphone-gmail-inbox.png – Rakib 2012-03-09 22:52:20
這不是TreeList thingy。我修改了我的答案,以反映您正在尋找的內容。 – AVIDeveloper 2012-03-09 23:50:06
組件廠商通常稱他們爲「的TreeList」。 – 2012-03-09 09:54:58