Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 21.04.2012
Сообщений: 19
1

Вставка текста в поле ввода

04.05.2012, 09:19. Показов 3162. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не получается сделать так, чтобы при нажатии текст выводился не во всплывающем окне, а в поле ввода. Помогите, пожалуйста.

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
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.IO;
using System.Collections.Generic;
 
namespace MyProgram // Универсальная оболочка для создания электронных учебников формата ТХТ (1)
{
    class MyProgram : Window
    {
        [STAThread]
        public static void Main() { new Application().Run(new MyProgram()); }
 
        List<String> definitions = new List<string>()
        {
            "text1",
            "text2",
            "text3",
            "text4",
            "text5",
            "text6",
            "text7",
            "text8",
            "text9",
            "text10",
            "text11",
            "text12",
            "text13",
            "text14",
            "text15",
            "text16",
            "text17",
            "text18",
            "text19",
            "text20",
        };
 
        public MyProgram()
        {
            Title = "название книги";                      // 
            WindowStyle = WindowStyle.ThreeDBorderWindow;  //
            Background = new SolidColorBrush(Color.FromRgb(128, 0, 40)); // задаем цвет
            Left = 0; Top = 0; Width = 500; Height = 600;  // 
            Uri uri = new Uri("c://10.jpg");
            Button btn1 = new Button(); btn1.Content = "Кнопка 1";
            Button btn2 = new Button(); btn2.Content = "Кнопка 2";
 
            AddHandler(Button.ClickEvent, new RoutedEventHandler(ButtonOnClick));
 
            StackPanel stack = new StackPanel();
            stack.Margin = new Thickness(1);
            ScrollViewer scroll = new ScrollViewer();
            scroll.Content = stack;// 1 способ (листаем)   
            for (int i = 0; i < 20; i++)
            {
                Button btn = new Button();
                btn.Name = "текст" + (i + 1);
                btn.Content = btn.Name + " :)";
                btn.Tag = i;
                btn.Margin = new Thickness(5);
                stack.Children.Add(btn);
            }
 
            DockPanel dock = new DockPanel();    // создаём пристыкованную панель
            DockPanel.SetDock(stack, Dock.Left); // размещаем панель слева
            dock.LastChildFill = false;          // последний дочерний элемент не растягивается
 
            TextBlock txt = new TextBlock();
            txt.FontSize = 32;
            txt.Inlines.Add("Название книги");
 
            TextBox txtbox = new TextBox();
            txtbox.Margin = new Thickness(48);
            txtbox.AcceptsReturn = true; // Многострочное поле           
            txtbox.Focus();
 
            dock.Children.Add(txt);
            dock.Children.Add(scroll);
            dock.Children.Add(txtbox);
 
            txt.SetValue(DockPanel.DockProperty, (Dock)1);
            scroll.SetValue(DockPanel.DockProperty, (Dock)0);
            txtbox.SetValue(DockPanel.DockProperty, (Dock)0);
 
            Content = dock;
        }
        void ButtonOnClick(object sender, RoutedEventArgs args)
        {
            Button btn = args.Source as Button;
            if (btn != null)
            {
                try
                {
                    int index = Int32.Parse(btn.Tag.ToString());
                    MessageBox.Show(definitions[index].ToString());
                }
                catch (Exception)
                {
                    MessageBox.Show("Извините, данного определения нету");
                    return;
                }
            }
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2012, 09:19
Ответы с готовыми решениями:

Поле ввода для большого текста
На странице необходимо организовать ввод запроса в виде текста. С символами переноса строки и т.п....

Передача текста в поле ввода на сайт
Есть некоторое поле ввода на сайте &lt;input id=&quot;txt&quot; class=&quot;texted&quot; type=&quot;text&quot; onblur=&quot;return...

Вставка текста при клике на поле ввода
Всем привет. Делаю крестики нолики. Как сделать так чтобы при клике по полю ввода появлялся текст...

Автоматическая вставка текста в поле ввода и нажатие на кнопку
Приветствую, суть такова. Допустим, есть поле для ввода (input) и кнопка (button): &lt;input...

4
I ♥ C#
470 / 261 / 25
Регистрация: 07.05.2010
Сообщений: 567
04.05.2012, 10:39 2
Поле ввода, это которое на 77 строке создается? Тогда сделайте его полем вашего класса:
C#
1
2
3
4
5
6
class MyProgram : Window
{
  TextBox txtbox;
 
  ... //остальной код
}
Теперь на 77 строке указывать тип не надо:
C#
1
txtbox = new TextBox();
Таким образом ссылка на это текстовое поле будет доступна внутри всех методов вашего класса, а значит в событии щелчка по кнопке вместо MessageBox можно использовать txtbox:
C#
1
2
int index = Int32.Parse(btn.Tag.ToString());
txtbox.Text += definitions[index].ToString() + Environment.NewLine;
1
0 / 0 / 0
Регистрация: 21.04.2012
Сообщений: 19
07.05.2012, 12:05  [ТС] 3
Теперь в 43-й строке выдается ошибка "Вызывающим потоком должен быть STA, поскольку этого требуют большинство компонентов UI". Что это такое и как это теперь исправить?
0
I ♥ C#
470 / 261 / 25
Регистрация: 07.05.2010
Сообщений: 567
07.05.2012, 17:13 4
Все нормально работает. Я поменял три строчки и поставил комментарий
//ИЗМЕНЕНО
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
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.IO;
using System.Collections.Generic;
 
namespace MyProgram // Универсальная оболочка для создания электронных учебников формата ТХТ (1)
{
    class MyProgram : Window
    {
        [STAThread]
        public static void Main() { new Application().Run(new MyProgram()); }
 
        List<String> definitions = new List<string>()
        {
            "text1",
            "text2",
            "text3",
            "text4",
            "text5",
            "text6",
            "text7",
            "text8",
            "text9",
            "text10",
            "text11",
            "text12",
            "text13",
            "text14",
            "text15",
            "text16",
            "text17",
            "text18",
            "text19",
            "text20",
        };
 
        TextBox txtbox; //ИЗМЕНЕНО
        public MyProgram()
        {
            Title = "название книги";                      // 
            WindowStyle = WindowStyle.ThreeDBorderWindow;  //
            Background = new SolidColorBrush(Color.FromRgb(128, 0, 40)); // задаем цвет
            Left = 0; Top = 0; Width = 500; Height = 600;  // 
            Uri uri = new Uri("c://10.jpg");
            Button btn1 = new Button(); btn1.Content = "Кнопка 1";
            Button btn2 = new Button(); btn2.Content = "Кнопка 2";
 
            AddHandler(Button.ClickEvent, new RoutedEventHandler(ButtonOnClick));
 
            StackPanel stack = new StackPanel();
            stack.Margin = new Thickness(1);
            ScrollViewer scroll = new ScrollViewer();
            scroll.Content = stack;// 1 способ (листаем)   
            for (int i = 0; i < 20; i++)
            {
                Button btn = new Button();
                btn.Name = "текст" + (i + 1);
                btn.Content = btn.Name + " :)";
                btn.Tag = i;
                btn.Margin = new Thickness(5);
                stack.Children.Add(btn);
            }
 
            DockPanel dock = new DockPanel();    // создаём пристыкованную панель
            DockPanel.SetDock(stack, Dock.Left); // размещаем панель слева
            dock.LastChildFill = false;          // последний дочерний элемент не растягивается
 
            TextBlock txt = new TextBlock();
            txt.FontSize = 32;
            txt.Inlines.Add("Название книги");
 
            txtbox = new TextBox(); //ИЗМЕНЕНО
            txtbox.Margin = new Thickness(48);
            txtbox.AcceptsReturn = true; // Многострочное поле           
            txtbox.Focus();
 
            dock.Children.Add(txt);
            dock.Children.Add(scroll);
            dock.Children.Add(txtbox);
 
            txt.SetValue(DockPanel.DockProperty, (Dock)1);
            scroll.SetValue(DockPanel.DockProperty, (Dock)0);
            txtbox.SetValue(DockPanel.DockProperty, (Dock)0);
 
            Content = dock;
        }
        void ButtonOnClick(object sender, RoutedEventArgs args)
        {
            Button btn = args.Source as Button;
            if (btn != null)
            {
                try
                {
                    int index = Int32.Parse(btn.Tag.ToString());
                    txtbox.Text = definitions[index].ToString(); //ИЗМЕНЕНО
                }
                catch (Exception)
                {
                    MessageBox.Show("Извините, данного определения нету");
                    return;
                }
            }
        }
    }
}
1
0 / 0 / 0
Регистрация: 21.04.2012
Сообщений: 19
08.05.2012, 20:05  [ТС] 5
А как сделать выравнивание по ширине? а то все в одной строчке и текст не весь видно
0
08.05.2012, 20:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2012, 20:05
Помогаю со студенческими работами здесь

HTML!? Есть поле ввода Type text, после ввода текста и нажатия entrer теряется фокус, как его оставить в этом же поле?
HTML!? Есть поле ввода Type text, после ввода текста и нажатия entrer теряется фокус, как его...

Как программно изменить цвет текста в поле ввода и как выделить весь текст в поле ввода по умолчанию
Как программно изменить цвет текста в поле ввода и как выделить весь текст в поле ввода по...

Вставка текста одновременно в 2 окна ввода текста
Добрый день! Помогите, пожалуйста. Есть код: Private Sub CommandButton4_Click() Dim oDataObject...

Вставка в поле ввода другого приложения
Мне нужно чтобы в программе при нажатии на кнопку вставлялись указанные мною, цифры и буквы, в...

Динамическая вставка смайлов со списка в поле ввода
вобщем есть допустим &lt;textarea&gt; ну ее заполняешь..а сбоку есть смайлы..и как сделать чтобы при...

Вставка текста в текстовое поле
Как вставить текст в htmlInputText в то место, где стоит курсор. Спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru