none
Помогите чайнику 2

    General discussion

  • В проекте VB(WPF) есть 30 текст боксов, в которых может быть текст(а может и не быть:)). Суть вопроса: как сохранить содержание текстбоксов в текстовый файл по маске: лейбл текст: текстбокс текст" через диалоговое окно?
    Tuesday, June 11, 2013 2:16 PM

All replies

  • Старайтесь обращать внимание на ранее сделанные рекомендации по работе с форумом. Я вам в той теме писал, что тыкать пальцем в небо трудно, поэтому всегда давайте что то для старта, а не только концептуальное описание.

    Ваши 30 textbox могут 30ю десятками разных способов размещены в окне, а ответ напрямую зависит от того как они размещены в окне.

    Сделайте так.

    Создайте пустой проект. Поместите в него эти текстбоксы и лейлблы так как они размещены в вашем проекте и выложите исходник на любой бесплатный файлообменник. Я проект доработаю и в тут отпишу что я и как сделал, что бы было понятно другим в будущем. Вы конечно можете выложить ваш текущий проект если он не является секретным, или кинуть его мне на почту lxgdark@mail.ru Люди так уже делали, ни у кого ничего не украл, можете не переживать :)


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    Tuesday, June 11, 2013 3:24 PM
    Answerer
  • Вот такая тема. Значение необходимо сохранить тех, которые в прямоугольнике.

    <Window x:Class="MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Калькулятор" Height="424" Width="721"> <Grid Name="gr"> <Rectangle Height="196" HorizontalAlignment="Left" Margin="94,177,0,0" Name="Rectangle1" Stroke="Black" VerticalAlignment="Top" Width="453" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="94,22,0,0" Name="vvod762" VerticalAlignment="Top" Width="58" TextWrapping="Wrap" FontStretch="Normal" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="94,63,0,0" Name="vvod915" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="94,104,0,0" Name="vvod1200" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="94,145,0,0" Name="vvod1320" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="207,22,0,0" Name="p762x300" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="207,63,0,0" Name="p915x300" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="207,104,0,0" Name="p1200x300" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="207,145,0,0" Name="p1320x300" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="283,22,0,0" Name="p762x400" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="283,63,0,0" Name="p915x400" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="283,104,0,0" Name="p1200x400" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="283,145,0,0" Name="p1320x400" VerticalAlignment="Top" Width="58" /> <TextBox Margin="358,22,0,0" Name="p762x500" HorizontalAlignment="Left" Width="58" Height="26" VerticalAlignment="Top" /> <TextBox Margin="358,63,0,0" Name="p915x500" HorizontalAlignment="Left" Width="58" Height="26" VerticalAlignment="Top" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="358,104,0,0" Name="p1200x500" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="358,145,0,0" Name="p1320x500" VerticalAlignment="Top" Width="58" /> <Button Content="Результат" Margin="608,54,0,0" Name="Button1" HorizontalAlignment="Left" Width="60" Height="26" VerticalAlignment="Top" /> <Button Content="Сброс" Margin="608,100,0,0" Name="sbros" Height="26" VerticalAlignment="Top" HorizontalAlignment="Left" Width="60" /> <CheckBox Content="620" Height="16" HorizontalAlignment="Left" Margin="12,36,0,0" Name="st620" VerticalAlignment="Top" /> <CheckBox Content="520" Height="16" HorizontalAlignment="Left" Margin="12,12,0,0" Name="st520" VerticalAlignment="Top" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="207,212,0,0" Name="TextBox1" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="207,253,0,0" Name="TextBox2" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="207,294,0,0" Name="TextBox3" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="207,335,0,0" Name="TextBox4" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="283,212,0,0" Name="TextBox5" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="283,253,0,0" Name="TextBox6" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="283,294,0,0" Name="TextBox7" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="283,335,0,0" Name="TextBox8" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="358,212,0,0" Name="TextBox9" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="358,253,0,0" Name="TextBox10" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="358,294,0,0" Name="TextBox11" VerticalAlignment="Top" Width="58" /> <TextBox Height="26" HorizontalAlignment="Left" Margin="358,335,0,0" Name="TextBox12" VerticalAlignment="Top" Width="58" /> <Label Content="Строка1" Height="28" HorizontalAlignment="Left" Margin="146,212,0,0" Name="Label1" VerticalAlignment="Top" /> <Label Content="Строка2" Height="28" HorizontalAlignment="Left" Margin="146,251,0,0" Name="Label2" VerticalAlignment="Top" /> <Label Content="Строка3" Height="28" HorizontalAlignment="Left" Margin="146,294,0,0" Name="Label3" VerticalAlignment="Top" /> <Label Content="Строка4" Height="28" HorizontalAlignment="Left" Margin="146,331,0,0" Name="Label4" VerticalAlignment="Top" /> <Label Content="300" Height="28" HorizontalAlignment="Left" Margin="222,177,0,0" Name="Label5" VerticalAlignment="Top" /> <Label Content="400" Height="28" HorizontalAlignment="Left" Margin="293,177,0,0" Name="Label6" VerticalAlignment="Top" /> <Label Content="500" Height="28" Margin="372,177,298,0" Name="Label7" VerticalAlignment="Top" /> </Grid> </Window>




    • Edited by AlexHolod Tuesday, June 11, 2013 6:15 PM
    Tuesday, June 11, 2013 6:12 PM
  • А почему вы пишите 30? В прямоугольнике их меньше. Или это для примера?

    И еще - меня совесть замучает, если я позволю вам продолжать работать с такой разметкой, поэтому я завтра в течение дня создам проект, нормально сверстаю, сделаю в нем то, что нужно и выложу здесь. Заодно посмотрите как рекомендуется верстать в WPF.


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    Tuesday, June 11, 2013 6:55 PM
    Answerer
  • Это для примера. Разметка не очень, это да, но это связано непосредственно с тем, что я не связан с программированием ни каким образом(при этом желания хоть отбавляй:)), но жизнь заставила разобраться) Немного не по теме хочу задать еще один вопрос: есть ли литература, написанная доступным текстом о основах программирования?
    Wednesday, June 12, 2013 6:24 AM
  • при этом желания хоть отбавляй:))

    Это самое главное. Я то же самоучка. Ни где не учился, все узнал сам, имея желание.

    Конкретно по WPF (а вы поступили правильно, что начали его осваивать) есть книга Мэтью МакДонольда "WPF для профессионалов с примерами на C#". Примеры там на C#, но большая часть книги просто описывает концепцию и принципы, поэтому не знание C# не помешает. Мне не помешало.

    VB язык легкий и по ходу вы будете укреплять его знания. В случае возникновения вопросов именно по синтаксису VB обращайтесь к этой ветке документации.

    P.S. Вашим начальным вопросом уже занимаюсь :)


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    Wednesday, June 12, 2013 6:31 AM
    Answerer
  • Вы пишите, что нужно сохранить значение тех, что внутри прямоугольника, а в первом посте вы пишите, что нужно сохранять по маске "лейбл: тескт". Не совсем понятно что нужно, так как внутри прямоугольника у вас, что то вроде таблицы. есть строки "Строка 1", "Строка 2" и т.д., и есть колонки "300", "400" и т.д.

    Как именно должен выглядеть текстовый файл при таком раскладе?


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    Wednesday, June 12, 2013 7:45 AM
    Answerer
  • Вот пока разметка. Для образовательного эффекта я задействовал разные виды контейнеров.

    С кодом решил подождать так как уже примерно понял вашу задачу и пришел к выводу, что вы не верно ее реализуете. Как только будут от вас пояснение что и как должно работать, расскажу как сделать код более лучше, чем ваш предполагаемый подход.

    Разметка:

    <Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="507" Width="739">
        <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>
                <StackPanel Margin="10">
                    <CheckBox Content="620" Height="16" HorizontalAlignment="Left" Name="st620" VerticalAlignment="Top"/>
                    <CheckBox Content="520" Height="16" HorizontalAlignment="Left" Margin="0,10,0,0" Name="st520" VerticalAlignment="Top"/>
                </StackPanel>
                <Grid Grid.Column="1" Margin="10">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="*"/>
                    </Grid.RowDefinitions>
                    <StackPanel>
                        <StackPanel Orientation="Horizontal">
                            <TextBox Height="26" Name="vvod762" Width="58" TextWrapping="Wrap" FontStretch="Normal"/>
                            <TextBox Height="26" Margin="50,0,0,0" Name="p762x300" Width="58"/>
                            <TextBox Height="26" Margin="15,0,0,0" Name="p762x400" Width="58"/>
                            <TextBox Height="26" Margin="15,0,0,0" Name="p762x500" Width="58" />
                        </StackPanel>
                        <StackPanel Orientation="Horizontal" Margin="0,15,0,0">
                            <TextBox Height="26" Name="vvod915" Width="58" TextWrapping="Wrap" FontStretch="Normal"/>
                            <TextBox Height="26" Margin="50,0,0,0" Name="p915x300" Width="58"/>
                            <TextBox Height="26" Margin="15,0,0,0" Name="p915x400" Width="58"/>
                            <TextBox Height="26" Margin="15,0,0,0" Name="p915x500" Width="58" />
                        </StackPanel>
                        <StackPanel Orientation="Horizontal" Margin="0,15,0,0">
                            <TextBox Height="26" Name="vvod1200" Width="58" TextWrapping="Wrap" FontStretch="Normal"/>
                            <TextBox Height="26" Margin="50,0,0,0" Name="p1200x300" Width="58"/>
                            <TextBox Height="26" Margin="15,0,0,0" Name="p1200x400" Width="58"/>
                            <TextBox Height="26" Margin="15,0,0,0" Name="p1200x500" Width="58" />
                        </StackPanel>
                        <StackPanel Orientation="Horizontal" Margin="0,15,0,0">
                            <TextBox Height="26" Name="vvod1320" Width="58" TextWrapping="Wrap" FontStretch="Normal"/>
                            <TextBox Height="26" Margin="50,0,0,0" Name="p1320x300" Width="58"/>
                            <TextBox Height="26" Margin="15,0,0,0" Name="p1320x400" Width="58"/>
                            <TextBox Height="26" Margin="15,0,0,0" Name="p1320x500" Width="58" />
                        </StackPanel>
                    </StackPanel>
                    <Border Grid.Row="1" Margin="0,10,0,0" BorderBrush="Black" BorderThickness="1">
                        <UniformGrid Margin="10" Rows="5" Columns="4" HorizontalAlignment="Left">
                            <Label Margin="7"/>
                            <Label Content="300" Height="28" Name="Label5" HorizontalAlignment="Center" Margin="7"/>
                            <Label Content="400" Height="28" Name="Label6" HorizontalAlignment="Center" Margin="7"/>
                            <Label Content="500" Height="28" Name="Label7" HorizontalAlignment="Center" Margin="7"/>
                            <Label Content="Строка1" Height="28" Name="Label1" Margin="7"/>
                            <TextBox Height="26" Margin="7" Name="TextBox1" Width="58"/>
                            <TextBox Height="26" Margin="7" Name="TextBox5" Width="58"/>
                            <TextBox Height="26" Margin="7" Name="TextBox9" Width="58"/>
                            <Label Content="Строка2" Height="28" Name="Label2" Margin="7"/>
                            <TextBox Height="26" Margin="7" Name="TextBox2" Width="58"/>
                            <TextBox Height="26" Margin="7" Name="TextBox6" Width="58"/>
                            <TextBox Height="26" Margin="7" Name="TextBox10" Width="58"/>
                            <Label Content="Строка3" Height="28" Name="Label3" Margin="7"/>
                            <TextBox Height="26" Margin="7" Name="TextBox3" Width="58"/>
                            <TextBox Height="26" Margin="7" Name="TextBox7" Width="58"/>
                            <TextBox Height="26" Margin="7" Name="TextBox11" Width="58"/>
                            <Label Content="Строка4" Height="28" Name="Label4" Margin="7"/>
                            <TextBox Height="26" Margin="7" Name="TextBox4" Width="58"/>
                            <TextBox Height="26" Margin="7" Name="TextBox8" Width="58"/>
                            <TextBox Height="26" Margin="7" Name="TextBox12" Width="58"/>
                        </UniformGrid>
                    </Border>
                </Grid>
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="10" Grid.Row="1" Grid.Column="1">
                    <Button Content="Результат" Name="Button1" Width="60" Height="26"/>
                    <Button Content="Сброс" Margin="15,0,0,0" Name="sbros" Height="26" Width="60" />
                </StackPanel>
            </Grid>
    </Window>

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Marked as answer by AlexHolod Wednesday, June 26, 2013 12:26 PM
    • Unmarked as answer by AlexHolod Wednesday, June 26, 2013 12:26 PM
    Wednesday, June 12, 2013 8:01 AM
    Answerer
  • Добрый день!

    Опишу применение приложения. С его помощью ведется подсчет элементов консольной конструкции,  в состав которой входит определенное  количество элементов. В текстбоксы, расположенные в верхней  части окна пользователь вводит данные, а  в нижней части получает результат по элементам строку (1,2,3 и т.д.). Нужно сохранить значение результата, если значение больше "0" и привязать лейбл (вернее два) 1 - Строка и через пробел  300:.....


    • Edited by AlexHolod Friday, June 14, 2013 7:15 AM
    Thursday, June 13, 2013 1:30 PM
  • Подумал о варианте перебора текстбоксов по маске имени, если технически это возможно,

    может так получилось бы сделать.

    <Window x:Class="MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="507" Width="739"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <StackPanel Margin="10"> <CheckBox Content="620" Height="16" HorizontalAlignment="Left" Name="st620" VerticalAlignment="Top"/> <CheckBox Content="520" Height="16" HorizontalAlignment="Left" Margin="0,10,0,0" Name="st520" VerticalAlignment="Top"/> </StackPanel> <Grid Grid.Column="1" Margin="10"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <StackPanel> <StackPanel Orientation="Horizontal"> <TextBox Height="26" Name="vvod762" Width="58" TextWrapping="Wrap" FontStretch="Normal"/> <TextBox Height="26" Margin="50,0,0,0" Name="p762x300" Width="58"/> <TextBox Height="26" Margin="15,0,0,0" Name="p762x400" Width="58"/> <TextBox Height="26" Margin="15,0,0,0" Name="p762x500" Width="58" /> </StackPanel> <StackPanel Orientation="Horizontal" Margin="0,15,0,0"> <TextBox Height="26" Name="vvod915" Width="58" TextWrapping="Wrap" FontStretch="Normal"/> <TextBox Height="26" Margin="50,0,0,0" Name="p915x300" Width="58"/> <TextBox Height="26" Margin="15,0,0,0" Name="p915x400" Width="58"/> <TextBox Height="26" Margin="15,0,0,0" Name="p915x500" Width="58" /> </StackPanel> <StackPanel Orientation="Horizontal" Margin="0,15,0,0"> <TextBox Height="26" Name="vvod1200" Width="58" TextWrapping="Wrap" FontStretch="Normal"/> <TextBox Height="26" Margin="50,0,0,0" Name="p1200x300" Width="58"/> <TextBox Height="26" Margin="15,0,0,0" Name="p1200x400" Width="58"/> <TextBox Height="26" Margin="15,0,0,0" Name="p1200x500" Width="58" /> </StackPanel> <StackPanel Orientation="Horizontal" Margin="0,15,0,0"> <TextBox Height="26" Name="vvod1320" Width="58" TextWrapping="Wrap" FontStretch="Normal"/> <TextBox Height="26" Margin="50,0,0,0" Name="p1320x300" Width="58"/> <TextBox Height="26" Margin="15,0,0,0" Name="p1320x400" Width="58"/> <TextBox Height="26" Margin="15,0,0,0" Name="p1320x500" Width="58" /> </StackPanel> </StackPanel> <Border Grid.Row="1" Margin="0,10,0,0" BorderBrush="Black" BorderThickness="1"> <UniformGrid Margin="10" Rows="5" Columns="4" HorizontalAlignment="Left"> <Label Margin="7"/> <Label Content="300" Height="28" Name="Label5" HorizontalAlignment="Center" Margin="7"/> <Label Content="400" Height="28" Name="Label6" HorizontalAlignment="Center" Margin="7"/> <Label Content="500" Height="28" Name="Label7" HorizontalAlignment="Center" Margin="7"/> <Label Content="Строка1" Height="28" Name="Label1" Margin="7"/> <TextBox Height="26" Margin="7" Name="s1300" Width="58"/> <TextBox Height="26" Margin="7" Name="s1400" Width="58"/> <TextBox Height="26" Margin="7" Name="s1500" Width="58"/> <Label Content="Строка2" Height="28" Name="Label2" Margin="7"/> <TextBox Height="26" Margin="7" Name="s2300" Width="58"/> <TextBox Height="26" Margin="7" Name="s2400" Width="58"/> <TextBox Height="26" Margin="7" Name="s2500" Width="58"/> <Label Content="Строка3" Height="28" Name="Label3" Margin="7"/> <TextBox Height="26" Margin="7" Name="s3300" Width="58"/> <TextBox Height="26" Margin="7" Name="s3400" Width="58"/> <TextBox Height="26" Margin="7" Name="s3500" Width="58"/> <Label Content="Строка4" Height="28" Name="Label4" Margin="7"/> <TextBox Height="26" Margin="7" Name="s4300" Width="58"/> <TextBox Height="26" Margin="7" Name="s4400" Width="58"/> <TextBox Height="26" Margin="7" Name="s4500" Width="58"/> </UniformGrid> </Border> </Grid> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="10" Grid.Row="1" Grid.Column="1"> <Button Content="Результат" Name="Button1" Width="60" Height="26"/> <Button Content="Сброс" Margin="15,0,0,0" Name="sbros" Height="26" Width="60" /> </StackPanel> </Grid> </Window>



    Friday, June 14, 2013 7:11 AM
  • Извините, что долго не отвечал. Я все еще не пойму из каких полей и как нужно сохранить.

    Напишите образец тестового файла, который должен получится и название полей из которых берутся значения.


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    Saturday, June 15, 2013 8:57 AM
    Answerer
  • Строка2 столбец 1: "здесь результат"
    Строка3 столбец 2: "здесь результат"
    Friday, June 21, 2013 11:05 AM
  • Строка2 столбец 1: "здесь результат"
    Строка3 столбец 2: "здесь результат"
    Ну вот теперь понятнее. ВЫ ближайшее выложу код.

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    Friday, June 21, 2013 11:21 AM
    Answerer
  • Добрый день!

    Хочу немного облегчить условие предыдущего вопроса

    Можете подсказать как сохранить значение текстбокса в текстовый файл без прикручивания лейбла.

    Monday, July 01, 2013 11:07 AM