OSDN Git Service

ユーザー情報ダイアログでユーザーアイコンを読み込んで表示するようにした
authorsyo68k <syo68k@users.sourceforge.jp>
Fri, 7 May 2010 01:32:20 +0000 (01:32 +0000)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 18 Feb 2012 14:12:05 +0000 (23:12 +0900)
git-svn-id: http://svn.sourceforge.jp/svnroot/tween/trunk@261 e39ad16e-3079-482e-bb30-4b4d378143b6

Tween/ShowUserInfo.Designer.vb
Tween/ShowUserInfo.vb

index 164c48c..da8b5d8 100644 (file)
@@ -48,6 +48,10 @@ Partial Class ShowUserInfo
         Me.LabelIsProtected = New System.Windows.Forms.Label()
         Me.LabelIsFollowing = New System.Windows.Forms.Label()
         Me.LabelIsFollowed = New System.Windows.Forms.Label()
+        Me.UserPicture = New System.Windows.Forms.PictureBox()
+        Me.LabelScreenName = New System.Windows.Forms.Label()
+        Me.BackgroundWorker1 = New System.ComponentModel.BackgroundWorker()
+        CType(Me.UserPicture, System.ComponentModel.ISupportInitialize).BeginInit()
         Me.SuspendLayout()
         '
         'ButtonClose
@@ -188,10 +192,26 @@ Partial Class ShowUserInfo
         resources.ApplyResources(Me.LabelIsFollowed, "LabelIsFollowed")
         Me.LabelIsFollowed.Name = "LabelIsFollowed"
         '
+        'UserPicture
+        '
+        resources.ApplyResources(Me.UserPicture, "UserPicture")
+        Me.UserPicture.Name = "UserPicture"
+        Me.UserPicture.TabStop = False
+        '
+        'LabelScreenName
+        '
+        resources.ApplyResources(Me.LabelScreenName, "LabelScreenName")
+        Me.LabelScreenName.Name = "LabelScreenName"
+        '
+        'BackgroundWorker1
+        '
+        '
         'ShowUserInfo
         '
         resources.ApplyResources(Me, "$this")
         Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.Controls.Add(Me.LabelScreenName)
+        Me.Controls.Add(Me.UserPicture)
         Me.Controls.Add(Me.LabelIsFollowed)
         Me.Controls.Add(Me.LabelIsFollowing)
         Me.Controls.Add(Me.LabelIsProtected)
@@ -223,6 +243,7 @@ Partial Class ShowUserInfo
         Me.Name = "ShowUserInfo"
         Me.ShowIcon = False
         Me.TopMost = True
+        CType(Me.UserPicture, System.ComponentModel.ISupportInitialize).EndInit()
         Me.ResumeLayout(False)
         Me.PerformLayout()
 
@@ -252,4 +273,7 @@ Partial Class ShowUserInfo
     Friend WithEvents LabelIsProtected As System.Windows.Forms.Label
     Friend WithEvents LabelIsFollowing As System.Windows.Forms.Label
     Friend WithEvents LabelIsFollowed As System.Windows.Forms.Label
+    Friend WithEvents UserPicture As System.Windows.Forms.PictureBox
+    Friend WithEvents LabelScreenName As System.Windows.Forms.Label
+    Friend WithEvents BackgroundWorker1 As System.ComponentModel.BackgroundWorker
 End Class
index 56bfcdc..56b1a80 100644 (file)
@@ -27,6 +27,7 @@ Public Class ShowUserInfo
 
     Private userInfoXml As String = ""
     Private _info As UserInfo
+    Private icondata As Image = Nothing
 
     Private Structure UserInfo
         Dim Name As String
@@ -78,8 +79,13 @@ Public Class ShowUserInfo
             Me.Close()
             Return
         Else
+            'アイコンロード
+            BackgroundWorker1.RunWorkerAsync()
+
             Me.Text = Me.Text.Insert(0, _info.ScreenName + " ")
+            LabelScreenName.Text = _info.ScreenName
             LabelName.Text = _info.Name
+
             LabelLocation.Text = _info.Location
             LinkLabelWeb.Text = _info.Url
 
@@ -173,4 +179,36 @@ Public Class ShowUserInfo
             MessageBox.Show(My.Resources.FRMessage3)
         End If
     End Sub
+
+    Private Sub ShowUserInfo_Activated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activated
+        '画面が他画面の裏に隠れると、アイコン画像が再描画されない問題の対応
+        If UserPicture.Image IsNot Nothing Then
+            UserPicture.Invalidate(False)
+        End If
+    End Sub
+
+    Private Sub ShowUserInfo_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
+        UserPicture.Image = Nothing
+        If icondata IsNot Nothing Then
+            icondata.Dispose()
+        End If
+    End Sub
+
+    Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
+        Try
+            icondata = (New HttpVarious).GetImage(_info.ImageUrl.ToString())
+        Catch ex As Exception
+            icondata = Nothing
+        End Try
+    End Sub
+
+    Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
+        Try
+            If icondata IsNot Nothing Then
+                UserPicture.Image = icondata
+            End If
+        Catch ex As Exception
+            UserPicture.Image = Nothing
+        End Try
+    End Sub
 End Class
\ No newline at end of file