Обнаружение касания в строке состояния управления в .net CF 3.5 - PullRequest
1 голос
/ 16 февраля 2012

Я занимаюсь разработкой приложения на C # с использованием профессионального мобильного устройства Windows 6. Я хочу обнаружить событие, когда пользователь нажимает на строку состояния, а затем отображает список. В строке состояния .NET CF нет нажатий клавиш или других событий, кроме текста или родительского элемента. Как мне подойти к этой проблеме?

Спасибо,

Ответы [ 3 ]

0 голосов
/ 17 февраля 2012

Если вы говорите о мягкой панели ввода , вам нужно добавить ссылку на Microsoft.WindowsCE.Forms, а затем перетащить элемент управления панели ввода на форму.Пример кода C ++ здесь: http://support.microsoft.com/kb/264034

По сути, просто подключите единственное событие для элемента управления Input Panel.Я сделал что-то подобное не так давно:

void SIP_EnabledChanged(object sender, EventArgs e) {
  int locationY = Y_START; // defined as txtNote.Location.Y when the form loads
  if (inputPanel1.Enabled) {
    locationY -= inputPanel1.Bounds.Height;
  }
  txtNote.SuspendLayout();
  txtNote.Bounds = new Rectangle(
    txtNote.Location.X,
    locationY,
    txtNote.Size.Width,
    txtNote.Size.Height
  );
  txtNote.ResumeLayout();
  txtNote.Refresh();
}
0 голосов
/ 18 февраля 2012

Control.Capture должен помочь вам: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.capture%28v=vs.80%29.aspx

В конструкторе вашей формы установите для свойства Capture значение True:

this.Capture = true;

Затем добавьте обработчики событий мыши в вашу форму. Например:

// This method handles the mouse down event for all the controls on the form.  
// When a control has captured the mouse
// the control's name will be output on label1.
private void Control_MouseDown(System.Object sender, 
    System.Windows.Forms.MouseEventArgs e)
{
    Control control = (Control) sender;
    if (control.Capture)
    {
        label1.Text = control.Name+" has captured the mouse";
    }
}

Он будет повышен, даже если дочерний элемент управления получил щелчок.

0 голосов
/ 16 февраля 2012

Я на самом деле не пробовал это, поэтому YMMV, но если бы мне пришлось решать проблему, я бы, вероятно, попытался бы создать подкласс родительской формы и искать сообщения мыши в области, где находится StatusBar. * В журнале MSDN есть статья , в которой рассматриваются подклассы форм в Compact Framework, которые помогут вам добраться до 95%.

...