Я сделал небольшую примерную программу, чтобы проиллюстрировать мою проблему. Программа состоит из одной формы с одним TableLayoutPanel: tableLayoutPanel1 one NumericUpDown: монеты и одна кнопка: flip. Когда нажата кнопка flip, таблицаLayoutPanel1 динамически заполняется монетами. Добавьте строки. Каждая строка состоит из одного ComboBox с элементами «Heads» и «Tails». Один из этих элементов выбирается путем рисования случайного числа для каждой строки. код выглядит следующим образом:ComboBox: выбранное значение остается в фокусе (синий)
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void draw_Click(object sender, EventArgs e)
{
tableLayoutPanel1.Controls.Clear();
string[] results = { "Heads", "Tails" };
int nCoins = Convert.ToInt32(coins.Value);
Random random = new Random();
for(int i = 0; i < nCoins; i++) {
ComboBox coin = new ComboBox();
coin.Items.AddRange(results);
coin.SelectedIndex = random.Next(0, 2);
tableLayoutPanel1.Controls.Add(coin, 0, i);
}
}
}
}
Моя проблема заключается в том, что выбранный элемент в каждом ComboBox имеет фокус, то есть синий. Как остановить это? Я пробовал называть coin.SelectionLength = 0; но это не работает :-(
Thaks заранее за любые ответы
Спасибо Cory за ваш ответ, , но я не думаю, что это работает. Мне не разрешено устанавливать (только получить) свойство CanFocus. Также я добавил coin.TopLevelControl.Focus(); звонок после столLayoutPanel1.Controls.Add (монета, 0, i); , но это не имело никакого эффекта. Andreas – 2009-04-20 13:32:22