private void lbxRegionSearch_DoubleClick(object sender, EventArgs e) { if (lbxRegionSearch.SelectedItem == null) { return; } RegionSearchResultItem item = (RegionSearchResultItem)lbxRegionSearch.SelectedItem; region = item.region; txtRegion.Text = item.Region.Name; nudX.Value = 128; nudY.Value = 128; nudZ.Value = 0; RefreshControls(); }
void Grid_GridRegion(object sender, GridRegionEventArgs e) { if (InvokeRequired) { BeginInvoke(new MethodInvoker(() => Grid_GridRegion(sender, e))); return; } RegionSearchResultItem item = new RegionSearchResultItem(instance, e.Region, lbxRegionSearch); int index = lbxRegionSearch.Items.Add(item); item.ListIndex = index; if (lbxRegionSearch.Items.Count == 1) { lbxRegionSearch.SelectedItem = item; lbxRegionSearch_DoubleClick(this, new EventArgs()); } }
private void lbxRegionSearch_DrawItem(object sender, DrawItemEventArgs e) { e.DrawBackground(); if (e.Index < 0) { return; } RegionSearchResultItem itemToDraw = (RegionSearchResultItem)lbxRegionSearch.Items[e.Index]; Brush textBrush = null; if ((e.State & DrawItemState.Selected) == DrawItemState.Selected) { textBrush = new SolidBrush(Color.FromKnownColor(KnownColor.HighlightText)); } else { textBrush = new SolidBrush(Color.FromKnownColor(KnownColor.ControlText)); } Font newFont = new Font(e.Font, FontStyle.Bold); SizeF stringSize = e.Graphics.MeasureString(itemToDraw.Region.Name, newFont); float iconSize = (float)trkIconSize.Value; float leftTextMargin = e.Bounds.Left + iconSize + 6.0f; float topTextMargin = e.Bounds.Top + 4.0f; if (itemToDraw.IsImageDownloaded) { if (itemToDraw.MapImage != null) { e.Graphics.DrawImage(itemToDraw.MapImage, new RectangleF(e.Bounds.Left + 4.0f, e.Bounds.Top + 4.0f, iconSize, iconSize)); } } else { e.Graphics.DrawRectangle(new Pen(Color.FromArgb(200, 200, 200)), e.Bounds.Left + 4.0f, e.Bounds.Top + 4.0f, iconSize, iconSize); if (!itemToDraw.IsImageDownloading) { itemToDraw.RequestMapImage(125000.0f); } } e.Graphics.DrawString(itemToDraw.Region.Name, newFont, textBrush, new PointF(leftTextMargin, topTextMargin)); if (itemToDraw.GotAgentCount) { e.Graphics.DrawString(itemToDraw.Region.Agents.ToString() + " people", e.Font, textBrush, new PointF(leftTextMargin + stringSize.Width + 6.0f, topTextMargin)); } else { if (!itemToDraw.GettingAgentCount) { itemToDraw.RequestAgentLocations(); } } switch (itemToDraw.Region.Access) { case SimAccess.PG: e.Graphics.DrawString("PG", e.Font, textBrush, new PointF(leftTextMargin, topTextMargin + stringSize.Height)); break; case SimAccess.Mature: e.Graphics.DrawString("Mature", e.Font, textBrush, new PointF(leftTextMargin, topTextMargin + stringSize.Height)); break; case SimAccess.Down: e.Graphics.DrawString("Offline", e.Font, new SolidBrush(Color.Red), new PointF(leftTextMargin, topTextMargin + stringSize.Height)); break; } e.Graphics.DrawLine(new Pen(Color.FromArgb(200, 200, 200)), new Point(e.Bounds.Left, e.Bounds.Bottom - 1), new Point(e.Bounds.Right, e.Bounds.Bottom - 1)); e.DrawFocusRectangle(); textBrush.Dispose(); newFont.Dispose(); textBrush = null; newFont = null; }