public class KLetter : System.Windows.Forms.TextBox
{
public int x, y;
Color clr;
public KLetter (int height, int wight, Color clr, int x, int y)
{
this.Location = new Point(x, y);
this.Size = new Size(wight, height);
this.ForeColor = Color.Green;
this.BackColor = clr;
}
public void Drawing(PaintEventArgs e, int xOffset, int yOffset)
{
Graphics g = e.Graphics;
Pen pen = new Pen(Color.Red, 0.5f);
Pen line = new Pen(Color.Black, 10f);
this.SuspendLayout();
}
}
Работа с TextBox
Код:
А в классе Форма (который создается автоматически) в одной из функций вот так добавляются текстбоксы:
Код:
if (array[i,j]=='*')
{
KLetter kl = new KLetter(20, 20, Color.White, xbaseOffset, ybaseOffset);
this.Controls.Add(kl);
//kletter.Add(kl);
xbaseOffset += 20;
}
{
KLetter kl = new KLetter(20, 20, Color.White, xbaseOffset, ybaseOffset);
this.Controls.Add(kl);
//kletter.Add(kl);
xbaseOffset += 20;
}
Что нужно и где еще добавить, чтобы получить желаемый результат?
Цитата:
Но эти клеточки такие маленькие получаются, а изменяешь размер - они увеличиваются только в длину
Код:
TextBox1.Multiline = true;
Цитата:
И мне нужно, чтобы в каждом таком ТекстБоксе можно было бы писать только одну буковку
Код:
TextBox1.MaxLength = 1;
Вопросы:
1) а где все введеные буквы фиксируются? Ну чтобы потом можно было сравнить все буквы с каким-нибудь эталоном? или чтобы изменить цвет только определенных букв? Ну и все в этом духе...
2) а можно еще обрабатывать текстБокс при вводе букв. Я имею в виду, например, при вводе буквы - цвет ТекстБокса будет одним, при ожидании ввода (т.е когда курсор стоит на какой-то клетке) - другой цвет, а когда буква введена - еще какой-то цвет? :)
3) Ну и еще... Как ты думаешь, мне нужно иметь класс клетка кроссворда или все-таки слово кроссворда?
TextBox члены
я обычно выделяю объект, а затем в окне Properties изучаю свойства, тоже самое с событиями: выбираешь объект, кликаешь на значке молния(см. вложение) и получаешь список событий.
в рус. мсдн не увидела полного списка, надо посмотреть на англ. TextBox Members
я обычно выделяю объект, а затем в окне Properties изучаю свойства, тоже самое с событиями: выбираешь объект, кликаешь на значке молния(см. вложение) и получаешь список событий.
в рус. мсдн не увидела полного списка, надо посмотреть на англ. TextBox Members
Цитата:
а где все введеные буквы фиксируются?
Код:
TextBox1.Text
Цитата:
а можно еще обрабатывать текстБокс при вводе букв. Я имею в виду, например, при вводе буквы - цвет ТекстБокса будет одним, при ожидании ввода (т.е когда курсор стоит на какой-то клетке) - другой цвет, а когда буква введена - еще какой-то цвет? :)
можно. почитай какии совытия есть и тексбох и действуй, например события: MouseEnter, TextChenged ...
Цитата:
Ну и еще... Как ты думаешь, мне нужно иметь класс клетка кроссворда или все-таки слово кроссворда?
незнаю :) если клетка - это просто ТексБох и тебе не надо больше обрабатывать для нее никаких дополнительных свойств, характеристик объекта, кроме уже имеющихся, тогда возможно тебе такого класса и не надо.
Спасибо, буду пробовать дальше доделывать свой кроссвордик... До следующих вопросов :)
Цитата:
раньше я хотела все сделать через ректенжелы
а это что такое? rectangles? т.е. рисовать квадратики средствами GDI? думаю текстбох'ы проще.
Меня интересует, как заставить TextBox изменить свою высоту по высоте содержащегося в нем текста. TextBox.AutoSize не работает.
Цитата: Camarada
Меня интересует, как заставить TextBox изменить свою высоту по высоте содержащегося в нем текста. TextBox.AutoSize не работает.
Код:
textBox1.ClientSize = new Size(textBox1.ClientSize.Width, (int)textBox1.Font.Size);
А почему бы не использовать DataGridView? ;)
Цитата: hardcase
Код:
textBox1.ClientSize = new Size(textBox1.ClientSize.Width, (int)textBox1.Font.Size);
hardcase, я имел ввиду то, что текст не в одну строчку
TextBox::Multiline = true
Цитата: Sanila_san
А почему бы не использовать DataGridView? ;)
Согласен, DataGridView здесь незаменим, если не ищешь себе геморроя. Можно обрабатывать события от каждой ячейки итд. Миллион текстбоксов либо ректанглов - коряво выглядит.