این کد برای اعتبار سنجی اعداد اعشاری

    private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) 
{
if ( !( char.IsDigit( e.KeyChar) || char.IsControl( e.KeyChar ) ||(e.KeyChar== (char )46)) )
{
e.Handled = true;
}
}
برای سوال دوم هم می تونی کد مورد نظرتو تو رویداد KeyDown کادر متنی یا همون textbox خودت قرار بده بعد اگر عدد اشتباه بود با استفاده از دستور زیر پیغامتو نمایش بده
MessageBox.Show("متن پیغام")
اما یه پیشنهاد دوست من این روند شما به نظر من اشتباهه چون همه سوال های شما در حد ابتدایی هست و اینطوری به نتیجه مطلوب نمی رسید شاید الان مشگلتون حل بشه اما در آینده به مشگل بر می خورید شما اگر یه کتاب آموزش C#‎‎ یخونید به راحتی می تونید کدهایی از این قبیل رو بنویسید
البته امیدوارم ناراحت نشید و منظور این نبود سوال نکنید شما هر گونه سوالی داشته باشید بچه های اینجا همه در خدمت هستن از جمله خودم چون خودمم خیلی چیزا اینجا یاد گرفتم و دارم یاد می گیرم
حرف من فقط یه پیشنهاده