Если бы я хотел создать двойной щелчок, даже чтобы выбрать элемент из списка и окна сообщений с возможностью удаления выбранного элемента, как бы это сделать?Кодирование события двойного щелчка в C#
0
A
ответ
0
Просто введите этот код в DoubleClick
обработчик события ListBox
. (Пусть ваш ListBox идентификатор "ListBox1")
MessageBox.Show(ListBox1.SelectedItem.ToString());
0
я сделал что-то вроде этого. Довольно много двойного щелчка, чтобы добавить из одного текстового поля в другой, и дважды щелкнув его, чтобы удалить его. На самом деле, здесь! Возьмите весь исходный код. Запустите новый проект, вставьте его туда и запустите. Это должно быть именно то, что вы хотите. Помните, что вы не можете просто изменять значения на фронте, потому что обратная сторона никогда не увидит его, поэтому мы сохраняем значения в скрытой переменной, а затем заполняем их на обратной стороне.
ListBoxEvents.aspx (примечание: заголовок опущен)
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//Listbox: ORIGINAL - Controls
var removeOriginal = false;
var lbOriginal = 'ListBox1';
var lbDestination = 'ListBox2'
var lineHeight = 12;
var lbElementsHeight = (($('[id*=' + lbOriginal + ']').find("option").length) * lineHeight) + 'px';
//var lh = $('[id*=' + lbOriginal + ']').css('line-height');
//Normalize Width
$('[id*=' + lbDestination + ']').width($('[id*=' + lbOriginal + ']').width());
$('[id*=' + lbOriginal + ']').dblclick(function() {
//Get name and value of a selected listbox item
var itemName = "";
var itemValue = "";
$('[id*=' + lbOriginal + '] option:selected').each(function() {
itemName += $(this).text();
itemValue += $(this).val();
});
//If user doubleclicked on empty spot, return
if (itemName == "" && itemValue == "")
return;
//Prevent duplicate appends
var itemAlreadyExists = false
$('[id*=' + lbDestination + '] option').each(function() {
if ($(this).text() == itemName && $(this).val() == itemValue)
itemAlreadyExists = true;
});
if (!itemAlreadyExists) {
$('[id*=' + lbDestination + ']').append('<option value="' + itemValue + '">' + itemName + '</option>');
//Select the last element in the destination listbox
$('[id*=' + lbDestination + '] option[selected]').removeAttr("selected");
$('[id*=' + lbDestination + "] option[value='" + itemValue + "']").attr("selected", "selected");
$('[id*=' + lbDestination + ']').animate({ scrollTop: lbElementsHeight }, 800);
AddItem(itemName, itemValue);
}
if (removeOriginal)
$('[id*=' + lbOriginal + "] option[value='" + itemValue + "']").remove();
}).trigger('change');
//Listbox: DESTINATION - Controls
$('[id*=' + lbDestination + ']').dblclick(function() {
//Get name and value of a selected listbox item
var itemName = "";
var itemValue = "";
$('[id*=' + lbDestination + '] option:selected').each(function() {
itemName += $(this).text();
itemValue += $(this).val();
});
//If user doubleclicked on empty spot, return
if (itemName == "" && itemValue == "")
return;
//If we have removed the value from the original listbox, return it
if (removeOriginal)
$('[id*=' + lbOriginal + ']').append('<option value="' + itemValue + '">' + itemName + '</option>');
//Remove the value from this listbox
$('[id*=' + lbDestination + "] option[value='" + itemValue + "']").remove();
RemoveItem(itemName, itemValue);
}).trigger('change');
function AddItem(itemName, itemValue) {
var hfLB2Items = $('[id*=hfLB2Items]');
var item = itemName + '~' + itemValue;
if (hfLB2Items.val() != "")
item = '|' + item;
hfLB2Items.val(hfLB2Items.val() + item);
}
function RemoveItem(itemName, itemValue) {
var hfLB2Items = $('[id*=hfLB2Items]');
var item = itemName + '~' + itemValue;
if (hfLB2Items.val().indexOf('|' + item) != -1)
hfLB2Items.val(hfLB2Items.val().replace('|' + item, ''));
else if (hfLB2Items.val().indexOf(item + '|') != -1)
hfLB2Items.val(hfLB2Items.val().replace(item + '|', ''));
else
hfLB2Items.val(hfLB2Items.val().replace(item, ''));
}
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ListBox ID="ListBox1" runat="server" Width="80" Height="150" style="float:left">
<asp:ListItem Value="one">1</asp:ListItem>
<asp:ListItem Value="two">2</asp:ListItem>
<asp:ListItem Value="three">3</asp:ListItem>
<asp:ListItem Value="four">4</asp:ListItem>
<asp:ListItem Value="five">5</asp:ListItem>
<asp:ListItem Value="six">6</asp:ListItem>
<asp:ListItem Value="seven">7</asp:ListItem>
<asp:ListItem Value="eight">8</asp:ListItem>
<asp:ListItem Value="nine">9</asp:ListItem>
<asp:ListItem Value="ten">10</asp:ListItem>
<asp:ListItem Value="eleven">11</asp:ListItem>
<asp:ListItem Value="twelve">12</asp:ListItem>
<asp:ListItem Value="thirteen">13</asp:ListItem>
<asp:ListItem Value="fourteen">14</asp:ListItem>
<asp:ListItem Value="fifteen">15</asp:ListItem>
<asp:ListItem Value="sixteen">16</asp:ListItem>
<asp:ListItem Value="seventeen">17</asp:ListItem>
<asp:ListItem Value="eighteen">18</asp:ListItem>
</asp:ListBox>
<asp:ListBox ID="ListBox2" runat="server" Width="80" Height="150" style="float:left"></asp:ListBox>
</div>
<div style="clear:both"></div>
<asp:TextBox ID="tbCount" runat="server" Enabled="False"></asp:TextBox><br />
<asp:Button ID="btnCount" runat="server" onclick="btnCount_Click" Text="ListBox 2 Item Count" />
<asp:HiddenField ID="hfLB2Items" runat="server" />
<div>
<h2>Double Click Event</h2><hr />
<p id="MyPara" style="background-color:Yellow;color:Red;font-size:2.2em;">
Double Click here to display alert
</p>
<br />
<br />
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$("#MyPara").dblclick(
function() {
ShowAlert();
}
);
});
function ShowAlert() {
alert("Alert message on double click");
}
</script>
</div>
</form>
</body>
</html>
ListBoxEvents.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class ListBoxEvents : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnCount_Click(object sender, EventArgs e)
{
PopulateDestinationListBox();
int itemCount = ListBox2.Items.Count;
tbCount.Text = itemCount.ToString();
}
protected void lbCount_Click(object sender, EventArgs e)
{
int itemCount = ListBox2.Items.Count;
tbCount.Text = itemCount.ToString();
}
private void PopulateDestinationListBox()
{
ListBox2.Items.Clear();
string[] pairs = hfLB2Items.Value.Split('|');
if (pairs.Length == 0 && string.IsNullOrEmpty(pairs[0]))
return;
foreach (string pair in pairs)
{
string[] values = pair.Split('~');
ListBox2.Items.Add(new ListItem(values[0], values[1]));
}
}
}
Смежные вопросы
- 1. Кнопка события двойного щелчка
- 2. GaugeControl обработчик события двойного щелчка
- 3. Выполнение события двойного щелчка с помощью таймера
- 4. Перехват нокаутом после события двойного щелчка
- 5. Угловая конфигурация события двойного щелчка сетки
- 6. Как определить размер захвата события двойного щелчка?
- 7. Flex4 Элемент списка двойного щелчка
- 8. Различать события одиночного и двойного щелчка в Qt
- 9. Youtube видео двойного щелчка
- 10. Хранение первого двойного щелчка
- 11. Событие двойного щелчка TreeView
- 12. Функция двойного щелчка изображения
- 13. C# datagridview событие двойного щелчка wont trigger
- 14. Событие двойного щелчка CMFCStatusBar
- 15. Ловля двойного щелчка в Cocoa OSX
- 16. Предотвращение двойного щелчка от двойного обжига команды
- 17. Установщик двойного щелчка в Ubuntu?
- 18. Захват двойного щелчка в ngTable
- 19. идентификация двойного щелчка в java
- 20. Удалить стиль двойного щелчка от управления в C#
- 21. OS X Скорость двойного щелчка
- 22. Android: Как поймать глобальные события двойного щелчка по тексту?
- 23. Предотвращения двойного щелчка события (кнопка + строка) с нокаутом
- 24. Выполнение события двойного щелчка на Silverlight 4 Datagrid
- 25. ExtJS/Script # - Добавление события двойного щелчка к кнопке
- 26. Предотвратить событие нажатия дочернего элемента из события двойного щелчка родителя.
- 27. Как отменить событие одного клика при использовании события двойного щелчка
- 28. Расширение события щелчка мыши - C
- 29. Необходимо отменить события click/mouseup при обнаружении двойного щелчка
- 30. Захват события двойного щелчка на определенном уровне с использованием OpenLayers.js
Можете ли вы предоставить более подробную информацию относительно технологий, которые вы используете, C# с WPF, WinForms и т. Д.? – Klee
Я в настоящее время студент 1 года по компьютерному программированию и просто создаю форму с массивом в виде окна списка, где мне нужно иметь возможность дважды щелкнуть и удалить элементы из списка, а затем добавить новые элементы, используя таэквот. Кажется, достаточно просто, но для меня жизнь не может понять, как закодировать событие двойного щелчка. –
@MikeOlson, я предполагаю, что это вопрос домашней работы, как вы говорите, что вы первый год. Нет проблем с домашними вопросами, просто добавьте тег домашней работы. Добро пожаловать в SO и удачи в проекте! –