8

ユーザーがログに記録するイベントを選択できるログ機能を設計しています。ボタンをクリックすると、そのようなタイプのメニューが表示されます。 ボタンクリック時のコンテキストメニュー

ユーザーは複数のイベントを選択できるため、ユーザーがクリックしたときに選択したオプションの前に「チェックマーク」を表示する必要があります。

この質問に記載されているように、「Checked」や「CheckOnClick」などのオプションが見つかりません。

ContextMenu と ContextMenuStrips を試しましたが、チェックボックスを実現できませんでした。助言がありますか??

4

6 に答える 6

12

コードが表示されないため、このメニューをどのように作成したかわかりません。ただし、最も一般的な用語では、Checkedプロパティにアクセスする方法は次のとおりです。

((ToolStripMenuItem)contextMenuStrip.Items[0]).Checked = true; //false;
((ToolStripMenuItem)contextMenuStrip.Items[1]).Checked = true; //false;
((ToolStripMenuItem)contextMenuStrip.Items[2]).Checked = true; //false;

true または false として割り当てることができます。という名前を付けた場合は、配列ToolStripItemsに移動するのではなく、それらに直接アクセスできます。Items

contextMenuStrip.event1.Checked = true; //false;

ご覧のとおり、を使用していContextMenuStripます。

于 2012-09-19T14:42:28.010 に答える
4

これが視覚的に機能するためには、「ShowCheckMargin」プロパティがオンになっていることを確認する必要があります。それ以外の場合、「.Checked」プロパティは黙って何もしません。

于 2016-06-03T16:28:22.170 に答える
2

あなたが使用することができますが:

((ToolStripMenuItem)contextMenuStrip.Items[0]).Checked = true; //false;

後でメニュー項目を並べ替えてコードが一致しなくなる可能性があるため、これは危険です。

代わりに、デザイナーでメニューをクリックし、項目 (Event1 など) をクリックしてプロパティを表示し、項目ModifiersPublicまたはInternalに設定します。次に、コードでアイテムの名前を入力してチェックを設定できます。

event1_ToolStripMenuItem.Checked = true; //false;

注: コンテンツ メニュー ストリップの名前を入力する必要はありません。商品名だけです。

于 2015-06-12T03:16:02.907 に答える
1

チェックマークが表示されず、フォーカスの四角形が ToolStripMenuItem テキストに部分的に重なっている場合は、ImageScaling を None に設定すると役立つ場合があります (私の場合、フォーカスの四角形のように見えたものは、実際にはテキストに重なる非常に幅の広いチェックマークでした)。

于 2020-05-11T11:07:28.597 に答える