第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

以編程方式添加的 LinkLabel 不可見(jiàn)

以編程方式添加的 LinkLabel 不可見(jiàn)

C#
桃花長(zhǎng)相依 2022-07-23 09:22:25
我遇到了一個(gè)奇怪的現(xiàn)象:我有一個(gè)帶有四個(gè) GroupBox 的 WinForms 應(yīng)用程序,四個(gè)最初都是空的。我用它來(lái)跟蹤 Twitter 上的新關(guān)注者/取消關(guān)注者,計(jì)劃在此功能正常運(yùn)行后擴(kuò)大其使用范圍。它確實(shí)適用于新的追隨者。對(duì)于這些,我有一個(gè)名為 grpFollow 的 GroupBox,我將 LinkLabels 與我的新關(guān)注者的 ScreenNames 添加到其中,如下所示:var folTop = new Point(grpFollow.Left + 5, grpFollow.Top + 5);lblFollowers.Text = Properties.Settings.Default.FollowersNow.Count.ToString();lblFriends.Text = Properties.Settings.Default.FriendsNow.Count.ToString();var ctr = 1;foreach (var fol in newFollowers){    var kvp = LookupUser(fol);    if (string.IsNullOrEmpty(kvp.Key)) continue;    var linklabel = new LinkLabel()    {        Text = kvp.Value,        Width = 200,        Height = 15,        Location = folTop,        Visible = true,        Name = $"follbl{ctr}"    };    ctr++;    linklabel.Links.Add(0, linklabel.Width-1, $"https://twitter.com/{kvp.Key}");    linklabel.Click += Linklabel_Click;    grpFollow.Controls.Add(linklabel);    folTop.Y += 25;}LookupUser 只是一個(gè)將用戶(hù) ID 傳遞給 Twitter API 并返回該用戶(hù)的名稱(chēng)和屏幕名稱(chēng)的函數(shù)。工作正常,沒(méi)問(wèn)題。LinkLabels 添加得很好,那里也沒(méi)有問(wèn)題。問(wèn)題在于其他組框,例如新朋友的組框:folTop = new Point(grpFriends.Left + 15, grpFriends.Top + 15);ctr = 1;foreach (var fol in newFriends){    var kvp = LookupUser(fol);    if (string.IsNullOrEmpty(kvp.Key)) continue;    var llabel = new LinkLabel()    {        Text = kvp.Value,        Width = 200,        Height = 15,        Location = folTop,        Visible = true,        Name = $"frdlbl{ctr}"    };    ctr++;    llabel.Links.Add(0, llabel.Width - 1, $"https://twitter.com/{kvp.Key}");    llabel.Click += Linklabel_Click;    grpFriends.Controls.Add(llabel);    folTop.Y += 25;}如您所見(jiàn),邏輯是相同的(因?yàn)槲蚁雽⑦@部分提取到單獨(dú)的方法中以避免重復(fù))。該位置是相對(duì)于 grpFriends 組框設(shè)置的,其他一切都相同。然而,LinkLabel 沒(méi)有顯示,即第二個(gè)組框(視覺(jué)上)仍然是空的!我設(shè)置了一個(gè)斷點(diǎn)來(lái)檢查可能出現(xiàn)的問(wèn)題。我單步執(zhí)行:正在檢索正確的屏幕名稱(chēng),位置正確,添加了控件 - 但什么都沒(méi)有出現(xiàn)。PS:這段代碼在后臺(tái)worker的RunWorkerCompleted方法中,此后不再執(zhí)行代碼。知道為什么不顯示標(biāo)簽嗎?
查看完整描述

1 回答

?
烙印99

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊

這里的錯(cuò)誤是我假設(shè),LinkLabels 需要一個(gè)相對(duì)于表單的位置。但是,當(dāng)將它們添加到 GroupBox 的 Controls 集合時(shí),它們會(huì)自動(dòng)假定相對(duì)于 GroupBox 而不是 Form 的位置。


所以,我的代碼現(xiàn)在對(duì)于所有四個(gè)組框基本相同,如下所示:


PopulateGroup(newFollowers, grpFollow);

PopulateGroup(unFollow, grpLost);

PopulateGroup(newFriends, grpFriends);

PopulateGroup(unFriend, grpDitched);

和:


private void PopulateGroup(List<string> collPeople, GroupBox groupBox)

{

    var folTop = new Point(12, 25);

    foreach (var fol in collPeople)

    {

        var kvp = LookupUser(fol);

        if (string.IsNullOrEmpty(kvp.Key)) continue;

        var linklabel = new LinkLabel()

        {

            Text = kvp.Value,

            Width = 200,

            Height = 15,

            Location = folTop

        };

        ctr++;

        linklabel.Links.Add(0, linklabel.Width - 1, $"https://twitter.com/{kvp.Key}");

        linklabel.Click += Linklabel_Click;

        groupBox.Controls.Add(linklabel);

        folTop.Y += 25;

    }

}

因此,組框是在表單的左側(cè)還是右側(cè),頂部還是底部并不重要......


查看完整回答
反對(duì) 回復(fù) 2022-07-23
  • 1 回答
  • 0 關(guān)注
  • 156 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)