Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: TextBox

Разместил на странице TextBox, установил свойство TextMode в MultiLine. Появился уголок для изменения размеров. Можно ли сделать так, чтобы этого уголка не было и размер TextBox-а изменить было нельзя.
Ответ: У текстбокса нет свойства style
Сделайте через CSS

<asp:TextBox ID="TextBox1" runat="server" Height="66px" CssClass="fixsize"  TextMode="MultiLine" Width="353px"></asp:TextBox>

в css

.fixsize {
             resize:none;
        }
Вопрос: VBA Enter для textbox срабатывает только один раз

Есть форма с несколькими textbox. Перемешаюсь по ним клавишей Tab. Нужно, чтобы при появлении фокуса на TextBox3 открывался календарь. Для этого использую событие Enter:
Private Sub DatePer1_Enter()
Me.TextBox3 = Format(Get_Date(Me.DatePer1, Now), "MMMM yyyy")    ' выбор даты из календаря
End Sub


Запускаю форму, перемещаюсь по Tab TextBox1, TextBox2, TextBox3. На TextBox3 выскакивает календарь. Всё нормально.
Ставлю курсор на TextBox2, нажимаю снова Tab, курсор переходит на TextBox3, но календарь уже не появляется. Почему Enter срабатывает только 1 раз? Как сделать, чтобы при каждом переходе к TextBox3 появлялся календарь?
Ответ: По ячейкам: 3 и 5, угадал? Попробую, правда заголовки колонок наверное придется оставить в Label внутри фреймов, иначе придётся как-то делать вывод текста по умолчанию в textbox с форматированием, пока для меня это сложно.

По науке: я и сам понимаю разницу между "подскажи" и "сделай за меня". Я также сторонник компактных кодов, но пока для меня это сложно, разберусь со временем. Я с VBA знаком от силы недели 2-3, и то методом научного втыка. В своём коде пробовал один раз объявлять переменную, а потом присваивать закладкам значения (Dim rng), но код перестал работать. Поэтому я вернулся к копипасту и каждый раз объявлял переменную для вставки каждой закладки. Вот и получилось:
Set rng = bm("NumberFirst1").Range 'присваиваем переменной rng ссылку на закладку "NumberFirst1"
rng.Text = Me.NumberFirst1.Text  'определяем новый текст закладки
bm.Add "NumberFirst1", rng   'заменяем закладку "NumberFirst1"
Set rng = bm("NumberFirst11").Range
rng.Text = Me.NumberFirst1.Text
bm.Add "NumberFirst11", rng

Set rng = bm("NumberFirst2").Range
rng.Text = Me.NumberFirst2.Text
bm.Add "NumberFirst2", rng
Set rng = bm("NumberFirst22").Range
rng.Text = Me.NumberFirst2.Text
bm.Add "NumberFirst22", rng


Как правильно записать, чтобы объявить один раз переменную и потом несколько раз использовать не нашел, поэтому пока оставил так.
Вопрос: Экспорт из textBox в xml

Есть несколько textBox'ов + одна кнопка для записи в xml. Требуется все это завязать и заставить работать, с чем у меня и возникли проблемы.
Брал в пример эту , с языком я только начал знакомиться и потому склепать программу из примера для экспериментов не смог. Подскажите как можно сделать лучшее такую программу.
P.S Ну а если у кого будет желание сделать этот пример в проект и скинуть мне, буду очень благодарен. Просто привычнее метод "поковыряй чужое, чтобы свое заработало"
Ответ: А не подскажете как сделать чтобы по нажатию на кнопку файл XML не перезаписывался, а добавлялась новая запись по дате?

Добавлено через 1 час 1 минуту
Вот если что код.
Код C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Globalization;
 
using System.Xml.Linq;
 
namespace test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.BackColor = Color.FromArgb(0x51, 0x51, 0x51);
            menuStrip1.BackColor = ColorTranslator.FromHtml("#515151");
            menuStrip1.BackColor = ColorTranslator.FromHtml("#515151");
            Add.BackColor = ColorTranslator.FromHtml("#515151");
            Del.BackColor = ColorTranslator.FromHtml("#515151");
            Del_All.BackColor = ColorTranslator.FromHtml("#515151");
            Clean.BackColor = ColorTranslator.FromHtml("#515151");
        }
 
 
        List<TextBox> TB1 = new List<TextBox>();
        List<TextBox> TB2 = new List<TextBox>();
        List<TextBox> TB3 = new List<TextBox>();
        private void Add_Click(object sender, EventArgs e)
        {
            TextBox TBObj1 = new TextBox();
            TBObj1.Location = new System.Drawing.Point(5, 80 + TB1.Count * 21);
            TBObj1.Name = "textBox" + TB1.Count.ToString();
            TBObj1.Size = new System.Drawing.Size(250, 20);
            TBObj1.TabIndex = TB1.Count;
            TB1.Add(TBObj1);
            Controls.Add(TB1[TB1.Count - 1]);
 
            TextBox TBObj2 = new TextBox();
            TBObj2.Location = new System.Drawing.Point(256, 80 + TB2.Count * 21);
            TBObj2.Name = "textBox" + TB2.Count.ToString();
            TBObj2.Size = new System.Drawing.Size(100, 20);
            TBObj2.TabIndex = TB2.Count;
            TB2.Add(TBObj2);
            Controls.Add(TB2[TB2.Count - 1]);
 
            TextBox TBObj3 = new TextBox();
            TBObj3.Location = new System.Drawing.Point(357, 80 + TB3.Count * 21);
            TBObj3.Name = "textBox" + TB3.Count.ToString();
            TBObj3.Size = new System.Drawing.Size(150, 20);
            TBObj3.TabIndex = TB3.Count;
            TB3.Add(TBObj3);
            Controls.Add(TB3[TB3.Count - 1]);
 
            if (TB3.Count >= 2)
            {
                Del.Visible = true;
            }
 
            if (TB3.Count >= 3)
            {
                Del_All.Visible = true;
            }
 
            if (TB1.Count >= 1)
            {
                Clean.Visible = true;
            }
 
            if (TB1.Count == 4)
            {
                Add.Visible = false;
            }
        }
 
        private void Del_Click(object sender, EventArgs e)
        {
            using (var tb1 = TB1[TB1.Count - 1])
            {
                Controls.Remove(tb1);
                TB1.Remove(tb1);
 
                if (TB1.Count <= 1)
                {
                    label4.Text = "Все строки";
                    Del.Visible = false;
                }
 
                if (TB1.Count < 4)
                {
                    Add.Visible = true;
                }
            }
 
            using (var tb2 = TB2[TB2.Count - 1])
            {
                Controls.Remove(tb2);
                TB2.Remove(tb2);
 
                if (TB2.Count <= 1)
                {
                    label5.Text = "удалены!";
                }
            }
 
            using (var tb3 = TB3[TB3.Count - 1])
            {
                Controls.Remove(tb3);
                TB3.Remove(tb3);
 
                if (TB3.Count <= 1)
                {
                    MessageBox.Show("Вы удалили все строки!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            }
        }
 
        private void Del_All_Click(object sender, EventArgs e)
        {
            var allBoxes = TB1.Concat(TB2).Concat(TB3);
 
            foreach (var tb in allBoxes)
            {
                using (tb)
                    this.Controls.Remove(tb);
            }
 
            TB1.Clear();
            TB2.Clear();
            TB3.Clear();
 
            if (TB1.Count <= 1)
            {
                label4.Text = "Все строки";
                Del.Visible = false;
                Del_All.Visible = false;
            }
 
            if (TB2.Count <= 1)
            {
                label5.Text = "удалены!";
            }
 
            if (TB3.Count <= 1)
            {
                MessageBox.Show("Вы удалили все строки!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
        }
 
        private void Clean_Click(object sender, EventArgs e)
        {
            label4.Text = "Таблица очищена!";
 
            var allBoxes = TB1.Concat(TB2).Concat(TB3);
            foreach (var tb in allBoxes)
            {
                if (tb is TextBox)
                    (tb as TextBox).Text = String.Empty;
            }
 
            MessageBox.Show("Содержимое таблицы очищено!", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
        }
 
        private void сервисToolStripMenuItem_Click(object sender, EventArgs e)
        {
            label4.Text = "";
            label5.Text = "";
        }
    }
}
Вопрос: Переход с одного textBox на другой используя клавиатуру

с помощью какой процедуры можно перейти с одного textBox на другой textBox используя клавиатуру, а именно стрелочки?
Ответ: Alexey1998, Создаете событие на нажатие кнопки. Выбираете нужные кнопки: вниз/вверх. В событии переводите фокус на след./предыдущий textBox. Вот код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
        TextBox[] textBox;
 
        public Form1()
        {
            InitializeComponent();
 
            textBox = new TextBox[10];
 
            for (int i = 0; i < textBox.Length; i++)
            {
                textBox[i] = new TextBox();
                textBox[i].Top = i * textBox[i].Height;
                textBox[i].KeyDown += new KeyEventHandler(keydown);
                textBox[i].Tag = i;
                Controls.Add(textBox[i]);
            }
        }
 
        void keydown(object send, KeyEventArgs e)
        {
            int index = (int)(send as TextBox).Tag;
            //MessageBox.Show(e.KeyValue.ToString());
 
            if (e.KeyValue == 38) //up
            {
                if (index - 1 >= 0)
                    textBox[index - 1].Focus();
 
            }
 
            if (e.KeyValue == 40) //down
            {
                if (index + 1 < textBox.Length)
                    textBox[index + 1].Focus();
            }
        }
Вопрос: Динамический textbox

И так предположим у меня есть код
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
 private void button5_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 10; i++)
            {
                this.Controls.Add(new TextBox() { Name = "textBox1_" + i.ToString(), Location = new Point(i+50, i + 50), Text = "I lave Lysya!"+i });
            }
 
        } 
 

При нажатии кнопки должны создаваться 3 textbox (главное условие сколько раз нажму, столько раз n каличество textbox`ов должен появиться)
Нажму 2 раза будет 6 textbox нажму 3 раза должны быть 9 суть вы поняли (Я понимаю что это я должен делать через цикл)
Но основная проблема в том что все эти значения копируются в один главный textbox вот как это реализовать если нам не известно конечное кoличество textbox просто в последствии это все будет основой для запроса в базе дынных
Ответ:
Сообщение от Pushkinmazila
Этот код у меня не работает он не создает textbox
Еще раз обясню суть вопроса он состоит из двух составляющий
1 код необходимо сделать чтоб пользователь нажимал на кнопку и у него создовалось 3 textbox потом если он сочтет нужным он может еще добавить новые 3 textbox и нам не известно сколько textbox он захочет создать
2 код нужен чтоб запихнуть все из n`кл textbox тест в один textbox_main
Какие проблемы?

Первая кнопка создает, ваши 3 текстбокса:
C#
1
2
3
4
            for (int i = 0; i < 3; i++)
            {
                TextBox tbx = new TextBox { Parent = pan}; //где pan - панель для этих текстбоксов (это пример, верстайте как хотите)
            }
Вторая кнопка записывает в ваш tbxMain значения из всех созданных текстбоксов:
C#
1
2
3
4
            foreach (TextBox tbx in pan.Controls.OfType<TextBox>())
            {
                tbxMain.AppendText(tbx.Text + "\r\n");
            }
Вопрос: Не выводит данные в textbox

Искал подобные темы, но не нашел там решение своей проблемы. Я динамически создаю textbox-ы, и добавляю в свой список этих самых textbox-ов, чтобы можно было обращаться к ним из всех функций программы. Сами они в проге появляются, но когда я программно пытаюсь в них что-то записать, то ничего не происходит. Ошибок тоже не выскакивает. Программа работает правильно, т.к. я поставил, чтобы при удачных расчетах выдавало messagebox. Т.е. проблема в самих textbox-ах.

Код C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//Список созданных textbox-ов
public List<TextBox> out_texts = new List<TextBox>();
 
...
 
private void add_etalon_Click(object sender, EventArgs e)
{
     ...
     TextBox out_text = new TextBox();
     CreatePicture(ref etalon, ref label, ref text, ref output, [B]ref out_text[/B]);
     out_texts.Add(out_text);
     ...
}
 
private void CreatePicture(ref Button[,] etalon, ref Label label, ref TextBox text, ref Label output, [B]ref TextBox out_text[/B])
{
     ...
     out_text.Name = "y" + label_index + "_text";
     out_text.Location = new Point(output.Location.X + 52, output.Location.Y);
     out_text.Size = new Size(77, 20);
     out_text.Text = "";
     this.Controls.Add(out_text); 
     ...   
}
 
private void Start_Click(object sender, EventArgs e)
{
     ...
     //вывод результатов (промежуточных) в textbox-ы
     for (int i = 0; i < neurons.Count; i++)
                out_texts[i].Text = "" + y[i];
     ...
}                    
Вот первоначальный вид проги, когда дополнительные textbox-ы еще не были созданы:


При динамическом добавлении они нормально отображаются...


Но результаты так и не выводятся, хотя расчеты прошли успешно и никаких ошибок не выявлено:


Можете подсказать, что не так?
Ответ: Благодарю) Проблему решил) После Вашего совета не зацикливаться, что виноваты textbox-ы, отладил всю прогу и нашел ошибку в логике работы) Все исправил, все заработало) Еще раз спасибо)
Вопрос: Не могу получить данные из textbox

Здравствуйте!Начал изучать ASP, и как всегда появились вопросы.Вот пробую решить задачку: есть несколько элементов textBox.Ввожу в них данные(ну взял фамилия, имя и т.д. для тренеровки).Нажимаю кнопку и эти данные должны появиться в других textBox. Проблема в том, что я никак не могу добраться к значениям первых textBox. Сам метод и логика не интересует. Подскажите пожалуйста. Вот код:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Html.Label("Имя")
@Html.TextBox("Texbox1", "")
@Html.Label("Фамилия")
@Html.TextBox("Texbox2", "")  //в эти TextBox ввожу
@Html.Label("Отчество")
@Html.TextBox("Texbox3", "")
@Html.Label("Возвраст")
@Html.TextBox("Texbox4", "")<br/>
 
 
@Html.Label("Имя Новое")
@Html.TextBox("Texbox5",a)
@Html.Label("Фамилия Новое")
@Html.TextBox("Texbox6", "")
@Html.Label("Отчество Новое")  //тут должны появиться.
@Html.TextBox("Texbox7", "")
@Html.Label("Возвраст Новый")
@Html.TextBox("Texbox8", "")<br />
<input type="submit" value="Запуск" />
 
<h2>Index</h2>
Может я что-то не так делаю,но я только начал изучать ASP.Спасибо.
Ответ: читать про MVC срочно. Можно хотя бы это

по вашему вопросу

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@model string
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div> 
        @using (Html.BeginForm("Action1", "Home", FormMethod.Post))
        {
            @Html.TextBox("textBoxName1", "")
 
        <br />
        @Html.Label("labelName2", Model ?? "")
        <br />
        <input type="submit" value="Run" />
        }
    </div>
</body>
</html>
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    public class HomeController : Controller
    {
        // GET: Home
        public ActionResult Index()
        {
            return View();
        }
 
        [HttpPost]
        public ActionResult Action1(string textBoxName1)
        {
            return View("Index", (object)textBoxName1);
        }
    }
p.s. по хорошему нужно использовать модель
Вопрос: Удаление текста из TextBox

При нажатии в TextBox нужно удалить имеющийся текст, пишу так
Код C#
1
2
3
4
private void TextBox_Click(object sender, System.EventArgs e)
        {
            TextBox.Clear();
        }
Нуль результата
Ответ: johnkrut, вы же знаете, что у TextBox нет события клик? Но есть событие MouseDoubleClick. Сделайте вот так:
Код XML
1
<TextBox Name="TextBox" HorizontalAlignment="Left" Height="23" Margin="75,89,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
Код C#
1
2
3
4
5
6
7
8
9
10
        public MainWindow()
        {
            InitializeComponent();
            TextBox.MouseDoubleClick += TextBox_MouseDoubleClick;
        }
 
        void TextBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            TextBox.Clear();
        }
или, если нравится через xaml:
Код XML
1
<TextBox Name="TextBox" MouseDoubleClick="TextBox_MouseDoubleClick_1" HorizontalAlignment="Left" Height="23" Margin="75,89,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
Код C#
1
2
3
4
        private void TextBox_MouseDoubleClick_1(object sender, MouseButtonEventArgs e)
        {
            TextBox.Clear();
        }
Вопрос: WPF + CustomControl + TextBox

Всем привет!

Пытаюсь реализовать свой контрол, который содержит внутри себя, кроме прочего, TextBox. Контрол имеет свойство Text , которое аналогично такому же свойству TextBox'а :
    [TemplatePart(Name = "PART_TextBox", Type = typeof(TextBox))]
    ...
    public class MyControl : Control
    {
        public static readonly DependencyProperty TextProperty =
            DependencyProperty.Register("Text", typeof(String), typeof(MyControl),
            new UIPropertyMetadata(null, new PropertyChangedCallback(OnTextChanged)));

        public static readonly RoutedEvent TextChangedEvent =
            EventManager.RegisterRoutedEvent("TextChanged", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MyControl));

        private static void OnTextChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
        {
            MyControl textBox = o as MyControl;
            if (textBox != null)
                textBox.OnTextChanged((String)e.OldValue, (String)e.NewValue);
        }

        protected virtual void OnTextChanged(String oldValue, String newValue)
        {
            this.RaiseEvent(new RoutedEventArgs(MyControl.TextChangedEvent, this));
        }

        public String Text
        {
            get { return (String)GetValue(TextProperty); }
            set { SetValue(TextProperty, value); }
        }

        public event RoutedEventHandler TextChanged
        {
            add { AddHandler(TextChangedEvent, value); }
            remove { RemoveHandler(TextChangedEvent, value); }
        }

        ... разное другое
    }
Generic.xaml расписан так:
    <Style TargetType="{x:Type local: MyControl}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local: MyControl }">
                    <Border Background="{TemplateBinding Background}"
                            BorderBrush="{TemplateBinding BorderBrush}"
                            BorderThickness="{TemplateBinding BorderThickness}">
                        <DockPanel LastChildFill="True" >

                            ...

                            <TextBox x:Name="PART_TextBox" 
                                     Text="{Binding Path=Text, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource TemplatedParent}}"
                                     BorderBrush="{x:Null}" BorderThickness="0" VerticalAlignment="Center" />
                        </DockPanel>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

В приложении (xaml) использую так:
<MyControls:MyControl Text="{Binding Path=MyClass.Text, UpdateSourceTrigger=PropertyChanged, RelativeSource={...}}" /> 
В результате все отображается как надо, TextBox внутри MyControl отображает MyClass.Text, но при изменении строки в интерфейсе, изменения не доходят до MyClass.Text (значение остается прежнее). При этом если использовать просто TextBox:
<TextBox Text="{Binding Path=MyClass.Text, UpdateSourceTrigger=PropertyChanged, RelativeSource={...}}" />
все работает.
Такое впечатление, что в MyControl я чего-то недописал... Если кто знает в чем может быть проблема, где я чего упустил, подскажите, пожалуйста.

Заранее благодарю.
Ответ: То есть помощь нужна вам, но мы должны еще и воспроизводить вашу ситуацию по неясным обрывкам рассуждений, вместо того, чтобы получить от вас тестовый проект?
Вопрос: Чтение/запись текста из TextBox в текстовый файл

Доброго времени суток, уважаемые программисты!!!

Сразу скажу что нашел подобную тему () но не смог в ней разобраться, поэтому прошу помочь мне в следующем вопросе, желательно поподробнее все разжевать:
Пишу программу на VB2010 суть которой в том, что на форме имеется определенное количество TextBox (например 5 штук) пользователь вводит в них определенную текстовую информацию (например ФИО, дата рождения, место жительства и т.д.) после нажатия соответствующей кнопки на форме, информация из указанных TextBox подставляется на закладки в шаблоне Word'а и документ открывается для форматирования, долее пользователь просматривает весь документ в Word'е и при необходимости выводит его на печать или сохраняет сам.
Так вот суть моей проблемы в том, чтоб при нажатии указанной выше кнопки информация из TextBox сохранялась и при необходимости, после нового запуска программы я мог загрузить эту информацию в нужные TextBox в эту же форму или другие формы.

Данную проблему пробовал решить записью текста из TextBox в .txt файл, но столкнулся со следующей проблемой, не могу записать текст из каждого отдельного TextBox а в новую строку и не могу считать определенную строку .txt файла в определенный TextBox.

Так же может кто подскажет другой способ сохранения и считывая текста из TextBox....

Заранее благодарен за помощь!
Ответ: Вот текст всего кода формы
Код vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
Public Class Form01
    'Ниже мы прописываем два объекта, которые нам будут нужны для открытия Word.
    'Прописывать их желательно до основного тела функций и событий.
    Dim oWord As Object ' Сам Word как приложение
    Dim oDoc As Object ' Конкретный документ .doc, для открытия в Word
   
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        '----------------------------------------------------------------------------------------------------------
        'СОХРАНЕНИЕ -----------------------------------------------------------------------------------------------
        '----------------------------------------------------------------------------------------------------------
        ' создание папки:
        If My.Computer.FileSystem.DirectoryExists("d:\БД (АРМС)\" + TextBox3.Text) Then ' проверка существует ли папка
            MsgBox("Папка с таким именем уже существует")  ' и вівод сообщение если такая уже есть
        Else
            My.Computer.FileSystem.CreateDirectory("d:\БД (АРМС)\" + TextBox3.Text) ' сздание новой папки
        End If
 
        '----------------------------------------------------------------------------------------------------------
        ' запись
 
        Dim Controls() As Control = {TextBox3, TextBox6, TextBox13, TextBox16, TextBox18, TextBox17, TextBox1,
                                     TextBox2, TextBox19, TextBox5, TextBox4, TextBox9, TextBox10, TextBox11,
                                     ComboBox1, ComboBox2, ComboBox3, ComboBox4, DateTimePicker1, DateTimePicker2}
        Using StreamWriter As New System.IO.StreamWriter("d:\БД (АРМС)\" + TextBox3.Text + "\Протокол" & TextBox1.Text & ".txt")
            For Each Control In Controls
                If TypeOf (Control) Is TextBox Then
                    StreamWriter.WriteLine(String.Format("{0} = {1}", Control.Name, Control.Text))
                ElseIf TypeOf (Control) Is ComboBox Then
                    StreamWriter.WriteLine(String.Format("{0} = {1}", Control.Name, CType(Control, ComboBox).Text))
                ElseIf TypeOf (Control) Is DateTimePicker Then
                    StreamWriter.WriteLine(String.Format("{0} = {1}", Control.Name, CType(Control, DateTimePicker).Value.ToString()))
                End If
            Next
        End Using
 
       
        '----------------------------------------------------------------------------------------------------------
        ' ДАЛЕЕ ВСТАВКА ТЕКСТА ИЗ ФОРМЫ В ВОРД ---------------------------------------------------------------------
        '----------------------------------------------------------------------------------------------------------
        oWord = CreateObject("Word.Application")
        oDoc = oWord.Documents.Add("D:\Шаблоны (АРМС)\Протокол.dot")
        oWord.visible = True
        ' Вставляем текст:
        oDoc.Bookmarks.Item("ТекстовоеПоле1").Range.Text = DateTimePicker1.Text
        oDoc.Bookmarks.Item("ТекстовоеПоле29").Range.Text = DateTimePicker1.Text
        oDoc.Bookmarks.Item("ТекстовоеПоле3").Range.Text = TextBox13.Text
       ' .......... и т.д.
    End Sub
    
' кнопка ВЫХОД
    Private Sub Button4_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Form2_Основная_форма.Show()
        Me.Hide()
    End Sub
  
  'зкрытие формы крестиком или АЛТ ф4
    Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Form2_Основная_форма.Show()
    End Sub
  
 
  'ОТКРЫТИЕ данных из  файла
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 
        Dim OFD As New OpenFileDialog With {.Filter = "MyConfig|*.dat"}
        If OFD.ShowDialog <> Windows.Forms.DialogResult.OK Then Exit Sub
        For Each Line In System.IO.File.ReadAllLines(OFD.FileName)
            Dim Values() As String = Line.Split("=")
            Dim NameControl As String = Values(0).Trim()
            Dim TextControl As String = Values(1).Trim()
            If Controls.ContainsKey(NameControl) Then
                If TypeOf (Controls(NameControl)) Is TextBox Then
                    Controls(NameControl).Text = TextControl
                ElseIf TypeOf (Controls(NameControl)) Is ComboBox Then
                    Dim objComboBox As ComboBox = CType(Controls(NameControl), ComboBox)
                    If objComboBox.Items.Contains(TextControl) Then
                        objComboBox.Text = TextControl
                        objComboBox.SelectedItem = TextControl
                    End If
                ElseIf TypeOf (Controls(NameControl)) Is DateTimePicker Then
                    CType(Controls(NameControl), DateTimePicker).Value = Date.Parse(TextControl)
                End If
            End If
        Next
    End Sub
End Class
З.Ы. прошу не ругать за корявый код, я ведь только учусь!