Вы можете контролировать дочерний элемент, используя родительский элемент в большинстве случаев. Я поменял box
и me,you
классы. Я надеюсь, что это решение будет полезным.
.me,
.you {
display: inline-block;
width: 100%;
}
.me .box {
float: right;
}
.you .box {
float: left;
background-color: #d8dbdf;
color: #444;
}
.box {
max-width: 60%;
border-radius: 30px;
background-color: #0084ff;
padding: 15px;
color: #ffffff;
font-weight: 300;
}
.you + .me .box {
border-bottom-right-radius: 5px;
}
.me + .me .box {
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
}
.me:last-of-type .box {
border-bottom-right-radius: 30px;
}
<div class="container">
<div class="conversations">
<div class="you">
<div class="box">1 Message</div>
</div>
<div class="me">
<div class="box">2 Message</div>
</div>
<div class="me">
<div class="box">3 Message</div>
</div>
<div class="you">
<div class="box">4 Message</div>
</div>
<div class="you">
<div class="box">5 Message</div>
</div>
<div class="me">
<div class="box">6 Message</div>
</div>
<div class="me">
<div class="box">7 Message</div>
</div>
<div class="me">
<div class="box">8 Message</div>
</div>
<div class="me">
<div class="box">9 Message</div>
</div>
</div>
</div>
Я наконец решил это:
В Visual Studio создайте ContextMenuStrip с элементом под названием «DeleteRow»
Затем в DataGridView ссылку ContextMenuStrip
Использование приведенного ниже кода помогло я заставляю это работать.
this.MyDataGridView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.MyDataGridView_MouseDown);
this.DeleteRow.Click += new System.EventHandler(this.DeleteRow_Click);
Вот классная часть
private void MyDataGridView_MouseDown(object sender, MouseEventArgs e)
{
if(e.Button == MouseButtons.Right)
{
var hti = MyDataGridView.HitTest(e.X, e.Y);
MyDataGridView.ClearSelection();
MyDataGridView.Rows[hti.RowIndex].Selected = true;
}
}
private void DeleteRow_Click(object sender, EventArgs e)
{
Int32 rowToDelete = MyDataGridView.Rows.GetFirstRow(DataGridViewElementStates.Selected);
MyDataGridView.Rows.RemoveAt(rowToDelete);
MyDataGridView.ClearSelection();
}
private void dataGridView1_CellContextMenuStripNeeded(object sender,
DataGridViewCellContextMenuStripNeededEventArgs e)
{
if (e.RowIndex != -1)
{
dataGridView1.ClearSelection();
this.dataGridView1.Rows[e.RowIndex].Selected = true;
e.ContextMenuStrip = contextMenuStrip1;
}
}