none
ProgressBar kullanımı hk. RRS feed

  • Soru

  • Merhaba Arkadaşlar,

    Combobox tan  seçilen değere göre progressbar kullanmak istiyorum fakat hiç bilgim olmadığı için sizlerden konu hakkında yardım rica ediyorum.

    Ben combobox tan 25 % veya 50 % seçtiğimde progressbar buna göre dolacak eğer 100 % ise tam dolu olacak.

    Syg.

     

    20 Nisan 2011 Çarşamba 10:10

Yanıtlar

  • Selam Levent Bey,

    İlk mesajınızda Combobox'dan bahsettiğiniz için ona göre bir örnek kod yollamıştım. Şimdi ki mesajınız DataGridView ile ilgili ve Combobox ile ilgili bir yer göremedim, belki de DataGridViewComboboxColumn'u kastediyorsunuz?.

    İlgili hücreye (DataGridViewComboboxColumn) veya alana "25%" gibi formatta kayıt yapıyorsanız, (dikkat ediniz "25%" öncesinde sonrasında boşluk yok), değeri ters çevirip substring uygulayarak veya % işaretini trim ederek numerik değeri almanız oldukça kolay:

    Bir örnek:

    ' EditingControlShowing olayını kullanınız.

        Private Sub DataGridView1_EditingControlShowing _
        (ByVal sender As System.Object, _
        ByVal e As DataGridViewEditingControlShowingEventArgs) _
        Handles DataGridView1.EditingControlShowing

            Dim editingComboBox As ComboBox = _
            DirectCast(e.Control, ComboBox)
            ProgressBar1.Maximum = 100
            AddHandler editingComboBox.SelectedIndexChanged, AddressOf Me.editingComboBox_SelectedIndexChanged
        End Sub
     
        Private Sub editingComboBox_SelectedIndexChanged _
        (ByVal sender As Object, _
        ByVal e As System.EventArgs)
            Dim val As String = _
            DirectCast(sender, ComboBox).SelectedItem.ToString
            ProgressBar1.Value = CInt(val.Trim("%"c))
        End Sub

    ...combobox'da Items olarak "25%", "50%" ve "100%" ve "75%" değerlerinin olduğu varsayımı altında çalışmaktadır. İki satır arası geçişti aynı kolondaki verinin formdaki progressbarda güncellenmesi için combobox'a (datagridviewcomboboxcolumn'a) tıklanması gerekmektedir.

    İyi çalışmalar.


    Best regards, Saygılarımla, Onur Güzel

    Yazgeliştir Forumları VB.NET / C# Moderatorü.

    Microsoft Haber Grupları Profilim (VB.NET)


    • Yanıt Olarak İşaretleyen levent_ozturk 20 Nisan 2011 Çarşamba 18:06
    20 Nisan 2011 Çarşamba 17:37
    Moderatör

Tüm Yanıtlar

  • Merhaba Levent Bey,

    Öncelikle combobox içerisinde 25, 50, 75 ve 100 değerlerinin olduğunu varsayalım. Bu değerlerin sonuna "%" işareti koymak isterseniz kod değişiklik gösterecek, o yüzden örneksel açıdan sadece rakamsal değerlerin combobox öğeleri olarak yer aldığını varsarayarak:

    ' SelectedIndexChanged olayında:


        Private Sub ComboBox1_SelectedIndexChanged _
        (ByVal sender As System.Object, _
        ByVal e As System.EventArgs) _
        Handles ComboBox1.SelectedIndexChanged
            ProgressBar1.Maximum = 100
            ProgressBar1.Value = CInt(ComboBox1.SelectedItem)
        End Sub

    Bu şekilde progressbar combobox içerisinden seçilen değere göre dolacak, progressbar maximum 100 değerine sabitlediğimiz için ve combobox'dan alacağımız değeri yüzdelik olarak progressbar'a yansıtacağınız için sorun kalmıyor.

    İyi çalışmalar.


    Best regards, Saygılarımla, Onur Güzel

    Yazgeliştir Forumları VB.NET / C# Moderatorü.

    Microsoft Haber Grupları Profilim (VB.NET)

    20 Nisan 2011 Çarşamba 14:37
    Moderatör
  • Merhaba Onur Bey,

    Öncelikle yardımcı olmaya çalıştığınız için tşk. ederim.

    Db'ye kayıt yaparken Tamamlanan kolonuna ( 25 % ) şeklinde kayıt yapıyorum. Acaba bu şekilde kayıt yapmakla yanlış mı yapıyorum.?

    Yazdıklarınızdan anladığım kadarı ile Tamamlanan kolonuna % işareti koymadan kayıt yapmam gerekiyor diye düşünüyorum.

    Ve birde progressbar'ı aşağıdaki şekilde de kullanmam gerekiyor onu nasıl yapabilirim?

    Yapmak istediğim şey tam olarak şu şekilde. Forma bir adet Datagridview yerleştirdim. Datagridview'in üst kısmına progressbar yerleştirdim. Datagridview de seçilen veri ( 25 % ) veya

    ( 75 % ) artık tamamlanan yüzde kaç ise progressbar o kadar dolsun istiyorum.

    Ben aşağıdaki şekilde yaptım fakat sanırım % işareti olduğu için olmuyor % işaretini kaldırmam mı gerekir acaba?

    Private Sub DataGridView1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.SelectionChanged

    If (DataGridView1.SelectedCells.Count > 0) Then

    LabelYuzde.Text = DataGridView1.CurrentRow.Cells("Tamamlanan").Value.ToString

    Try

    If LabelYuzde.Text < 101 And LabelYuzde.Text > 0 Then

    Seviye = LabelYuzde.Text

    End If

    ProgressBar1.Value = Seviye

    Catch ex As Exception

    End Try

    End If

    Syg.

    20 Nisan 2011 Çarşamba 15:28
  • Selam Levent Bey,

    İlk mesajınızda Combobox'dan bahsettiğiniz için ona göre bir örnek kod yollamıştım. Şimdi ki mesajınız DataGridView ile ilgili ve Combobox ile ilgili bir yer göremedim, belki de DataGridViewComboboxColumn'u kastediyorsunuz?.

    İlgili hücreye (DataGridViewComboboxColumn) veya alana "25%" gibi formatta kayıt yapıyorsanız, (dikkat ediniz "25%" öncesinde sonrasında boşluk yok), değeri ters çevirip substring uygulayarak veya % işaretini trim ederek numerik değeri almanız oldukça kolay:

    Bir örnek:

    ' EditingControlShowing olayını kullanınız.

        Private Sub DataGridView1_EditingControlShowing _
        (ByVal sender As System.Object, _
        ByVal e As DataGridViewEditingControlShowingEventArgs) _
        Handles DataGridView1.EditingControlShowing

            Dim editingComboBox As ComboBox = _
            DirectCast(e.Control, ComboBox)
            ProgressBar1.Maximum = 100
            AddHandler editingComboBox.SelectedIndexChanged, AddressOf Me.editingComboBox_SelectedIndexChanged
        End Sub
     
        Private Sub editingComboBox_SelectedIndexChanged _
        (ByVal sender As Object, _
        ByVal e As System.EventArgs)
            Dim val As String = _
            DirectCast(sender, ComboBox).SelectedItem.ToString
            ProgressBar1.Value = CInt(val.Trim("%"c))
        End Sub

    ...combobox'da Items olarak "25%", "50%" ve "100%" ve "75%" değerlerinin olduğu varsayımı altında çalışmaktadır. İki satır arası geçişti aynı kolondaki verinin formdaki progressbarda güncellenmesi için combobox'a (datagridviewcomboboxcolumn'a) tıklanması gerekmektedir.

    İyi çalışmalar.


    Best regards, Saygılarımla, Onur Güzel

    Yazgeliştir Forumları VB.NET / C# Moderatorü.

    Microsoft Haber Grupları Profilim (VB.NET)


    • Yanıt Olarak İşaretleyen levent_ozturk 20 Nisan 2011 Çarşamba 18:06
    20 Nisan 2011 Çarşamba 17:37
    Moderatör