Я просмотрел сайт в поисках решения своей проблемы, но, похоже, ни один из них не помог мне решить мою проблему.
Проблема, с которой я столкнулся: Когда я выбираю элемент в списке, он будет выделен. Если я нажимаю в любом месте формы, она будет продолжать выделяться, но когда я нажимаю кнопку в той же форме и пробегает свой код, в конце _Click элемент ListView теряет фокус. У меня для списка просмотра HideSelection установлено значение false также в конце события button_Click У меня также есть listview.focus()
. Но ничего из этого не помогает сосредоточиться на элементе в списке. У меня также это есть в конце button_Click listview.SelectedItems[0].Focused = true;
Следует отметить, что у списка есть группы. Это будет моей проблемой? Если так, как я могу решить это? Есть ли место, где я могу установить фокус на форме, когда она получает фокус после нажатия кнопки?
РЕДАКТИРОВАТЬ: Ниже приведено нажатие кнопки.
private void btPowerOn_Click(object sender, EventArgs e)
{
Color colour;
ButtonPower buttonpower = new ButtonPower(this);
var button = sender as Button;
buttonpower.buttonOnOff(button.Name, Convert.ToByte(this.lvVMs_1.SelectedItems[0].Group.Header));
} //<-- Following this the listview has no focus.
Также ListView, называемый LvVMs_1, инициализируется в Form1.Design.cs:
// lvVMs_1
//
this.lvVMs_1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.lvVMs_1.AutoArrange = false;
this.lvVMs_1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lvVMs_1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.lvVMs_1.HideSelection = false;
this.lvVMs_1.LabelWrap = false;
this.lvVMs_1.Location = new System.Drawing.Point(8, 25);
this.lvVMs_1.MultiSelect = false;
this.lvVMs_1.Name = "lvVMs_1";
this.lvVMs_1.Size = new System.Drawing.Size(280, 651);
this.lvVMs_1.TabIndex = 52;
this.lvVMs_1.UseCompatibleStateImageBehavior = false;
this.lvVMs_1.View = System.Windows.Forms.View.Tile;
this.lvVMs_1.SelectedIndexChanged += new System.EventHandler(this.lvVMs_1_SelectedIndexChanged);