Centrovanie   zodpovězená otázka

VB.NET

Dobrý deň

Prosil by som o radu.

Do ListView zapisujem položky, kde mám 6 stĺpcov, ale problém je v tom, že po každom spustení programu, alebo uložený sa všetky položky v stĺpcoch okrem prvého stĺpca sa posúvajú do prava. Ukladá mi to do TextFile. Skúšal som to aj vo vlastnostiach aj cez tento kód:

ListView1.Columns.Add("Column1", 100, HorizontalAlignment.Center)
        ListView1.Columns.Add("Column2", 100, HorizontalAlignment.Center)
        ListView1.Columns.Add("Column3", 100, HorizontalAlignment.Center)
        ListView1.Columns.Add("Column4", 100, HorizontalAlignment.Center)
        ListView1.Columns.Add("Column5", 100, HorizontalAlignment.Center)
        ListView1.Columns.Add("Column6", 100, HorizontalAlignment.Center)

A stále to nefunguje. Ak vie niekto poradiť vopred Ďakujem! A ešte jednu radu.

Potreboval by som nejaký kód pre sčítanie hodín cez tento kód mi to nefunguje:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim a As Date = CDate(TextBox1.Text)
        Dim b As Date = CDate(TextBox2.Text)
        Dim c As Date = a + b
        TextBox3.Text = CDate(c)
    End Sub
End Class

Poraďte prosím!!! Ďakujem

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V tom na sdíleném zdrojáku chyba nebude. V tom texťáku nejsou mezery navíc? Jakým způsobem zapisujete a čtete data ze souboru? A jakým způsobem plníte ListView1?

Co si představujete jako součet datumů? 8. dubna 2012 + 12. června 2013 = 20. října 4025?

Každopádně pro počítání s časem je datový typ TimeSpan http://msdn.microsoft.com/cs-cz/library/...

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Toto je celý kód pre vpísanie, odstránenie a ukončenie

Public Class Form2
 Private TextFile1 As String = Application.StartupPath & "\TextFile1.txt"
   
 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dialog1.ShowDialog(Me)
        ListView1.Sorting = SortOrder.Ascending
        ListView1.Sort()
 End Sub
   
 Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        For Each i As ListViewItem In ListView1.SelectedItems
            ListView1.Items.Remove(i)
        Next
 End Sub
 
 Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
        ListView1.EndUpdate()
        ListView1.Items.Clear()
 End Sub

 Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
      Dim myWriter As New IO.StreamWriter(TextFile1)
        For Each myItem As ListViewItem In ListView1.Items
            myWriter.WriteLine(myItem.Text & " # " & myItem.SubItems(1).Text & " # " & myItem.SubItems(2).Text & " # " & myItem.SubItems(3).Text & " # " & myItem.SubItems(4).Text & " # " & myItem.SubItems(5).Text)
        Next

        myWriter.Close()
        Close()
 End Sub
   
 Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        ListView1.Items.Clear()
        Dim myCoolFileLines() As String = IO.File.ReadAllLines(TextFile1)
        For Each Line As String In myCoolFileLines
            Dim lineArrary() As String = Line.Split("#")
            Dim newItem As New ListViewItem(lineArrary(0))
            newItem.SubItems.Add(lineArrary(1))
            newItem.SubItems.Add(lineArrary(2))
            newItem.SubItems.Add(lineArrary(3))
            newItem.SubItems.Add(lineArrary(4))
            newItem.SubItems.Add(lineArrary(5))
            ListView1.Items.Add(newItem)
        Next
  End Sub
End Class

Button1 - Pridá záznam

button2 - Vymaže označený riadok

Button3 - Vymaže všetko

Button4 - Uloží a ukončí program

Práve keď uložím a ukončím program a následne ho znovu otvorim sa vždy všetky zložky v stĺpcoch posúvajú z ľava do prava.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

položky oddělujete " # ", ale při načítání rozdělujete "#".

Použíjte

myWriter.WriteLine(myItem.Text + "#" + myItem.SubItems(1).Text + "#" + myItem.SubItems(2).Text + "#" + myItem.SubItems(3).Text + "#" + myItem.SubItems(4).Text + "#" + myItem.SubItems(5).Text);      
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky moc! Funguje to výborne, taká maličkosť a koľko ma to stálo nervov. Len s tým Sčítaním času mi to nejak nejde. Môžeš prosím ťa mi to nejak upresniť? Nemám s tým skúsenosti. Potreboval by som sčítať TextBox1 + TextBox2 + textbox3 = TextBox4. Napr. 8:30 + 8:30 + 8:30 = 25:30 Ďakujem!!!

nahlásit spamnahlásit spam 0 odpovědětodpovědět
Dim timeSpan1 As TimeSpan
If TimeSpan.TryParse(TextBox1.Text, timeSpan1) Then
	Dim timeSpan2 As TimeSpan
	If TimeSpan.TryParse(TextBox2.Text, timeSpan2) Then
		TextBox3.Text = (timeSpan1 + timeSpan2).ToString()
	End If
End If
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ďakujem ti veľmi si mi pomohol funguje to podľa mojich predstav. Prepáč, že ťa obťažujem, ale ak môžem chcem ťa poprosiť ešte o jednu a to poslednú vec.

V ComboBoxe1 mám automobilky a potreboval by som spraviť nejaký filter, že keď kliknem na jednu značku automobilky v ComboBoxe1, tak v ComboBoxe2 sa zobrazia len tipy tej automobilky. Dúfam, že som to napísal správne. Ak môžeš prosím pomôž posledný raz. Ďakujem!!!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Do události SelectedIndexChanged (nebo spíš DropDownClosed) Comboboxu1 si musíš dát akci, která vybere auta té vybrané automobilky a tím pak naplníš ten ComboBox2

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já bych si vytvořil třídy Značka a Model př:

public class Znacka
{
    public Znacka()
    {
        Modely = new List<Model>();
    }

    public string Nazev { get; set; }
    public List<Model> Modely { get; set; }
}

public class Model
{
    public Model(string nazev)
    {
        Nazev = nazev;
    }

    public string Nazev { get; set; }
}

Funkcionalita by mohla být nějak takto:

public partial class Form1 : Form
{
    //Zdroj dat značek
    public List<Znacka> Znacky { get; set; }

    public Form1()
    {
        InitializeComponent();

        //Událost změna značky
        CbZnacky.SelectedValueChanged += OnZnackyChanged;

        //Inicializace značek a modelů resp. zdroje dat
        Znacky = new List<Znacka>();
        var z1 = new Znacka {Nazev = "Opel"};
        var z2 = new Znacka {Nazev = "Škoda"};
        z1.Modely.AddRange(new[] { (new Model("Insignia")), (new Model("Astra")), (new Model("Vectra")));
        z2.Modely.AddRange(new[] { (new Model("Octavia")), (new Model("Fabia")), (new Model("Felicia")));
        Znacky.AddRange(new[] {z1, z2});

        //zdroj dat pro combobox Znacky
        CbZnacky.DataSource = Znacky;
        CbZnacky.DisplayMember = "Nazev";

        CbModely.DisplayMember = "Nazev";
    }

    //Změna značky
    private void OnZnackyChanged(object sender, EventArgs e)
    {
        var cb = sender as ComboBox;
        if (cb == null) return;

        var znacka = cb.SelectedItem as Znacka;
        if (znacka == null) return;

        CbModely.DataSource = znacka.Modely;
    }
}

Je to v C#, ale s tím si poradíte.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback